home *** CD-ROM | disk | FTP | other *** search
/ PC go! 2008 April / PCgo 2008-04 (DVD).iso / interface / contents / demoversionen_3846 / 13664 / files / Data1.cab / imsigx.idl < prev    next >
Encoding:
Text File  |  2006-04-04  |  731.6 KB  |  25,451 lines

  1. // IMSIGX.IDL -- Interface file for IMSIGX project
  2. //
  3. // This file will be processed by the MIDL tool to
  4. // produce the marshalling code.
  5. //
  6. // Note to TechWriters:
  7. // This file can be parsed by an automated documentation engine called
  8. // "DocJet" to produce HTML or RTF hyperlinked documentation.
  9. // The trick is to put comments in specific locations within the
  10. // file.  You can also prevent documentation by enclosing parts of the
  11. // file within an #if-#else-#endif block.  The part between the #else and
  12. // the #endif will NOT be generated from.
  13. //
  14. // What needs to be done:
  15. // 1.  Remarks sections for each documented interface (class).
  16. // 2.  Remarks and Return Value sections for each documented method.
  17. // 3.  Comment for each parameter of each docuemented method.
  18. //
  19.  
  20. cpp_quote("/******************************************************************/")
  21. cpp_quote("/*                                                                */")
  22. cpp_quote("/*                      TurboCAD for Windows                      */")
  23. cpp_quote("/*                   Copyright (c) 1993 - 1997                    */")
  24. cpp_quote("/*             International Microcomputer Software, Inc.         */")
  25. cpp_quote("/*                            (IMSI)                              */")
  26. cpp_quote("/*                      All rights reserved.                      */")
  27. cpp_quote("/*                                                                */")
  28. cpp_quote("/******************************************************************/")
  29.  
  30. import "oaidl.idl";
  31. // import "ocidl.idl";
  32. ///////////////////////////////////////////////////////////////////////////
  33. //  Forward interface declarations
  34.  
  35. interface IGlobal;
  36. interface IApplication;
  37. interface IDrawing;
  38. interface IGraphic;
  39. interface IVertex;
  40. interface IMatrix;
  41. interface ICamera;
  42. interface IGrid;
  43. interface IBrushPattern;
  44. interface BrushPatterns;
  45. interface PageSetup;
  46. interface ApplicationCallbacks;
  47. interface ApplicationOptions;
  48. interface DrawingCallbacks;
  49. interface DrawingOptions;
  50. interface Drawings;
  51. interface Graphics;
  52. interface Selection;
  53. interface Vertices;
  54. interface Property;
  55. interface Properties;
  56. interface NamedView;
  57. interface NamedViews;
  58. interface RegenMethod;
  59. interface RegenMethods;
  60. interface Layer;
  61. interface Layers;
  62. interface LineStyle;
  63. interface LineStyles;
  64. interface BrushStyle;
  65. interface BrushStyles;
  66. interface Filter;
  67. interface Filters;
  68. interface NamedColor;
  69. interface NamedColors;
  70. interface BoundingBox;
  71. interface Block;
  72. interface Blocks;
  73. interface PickEntry;
  74. interface PickResult;
  75. interface Window;
  76. interface Windows;
  77. interface KeyBinding;
  78. interface KeyBindings;
  79. interface CommandBar;
  80. interface CommandBars;
  81. interface CommandBarControl;
  82. interface CommandBarControls;
  83. interface Tool;
  84. interface Tools;
  85. interface AddIn;
  86. interface AddIns;
  87. interface ScaleSystem;
  88. interface ScaleSystems;
  89. interface GraphicSet;
  90. interface GraphicSets;
  91. interface UndoRecord;
  92. interface Table;
  93. interface Tables;
  94. interface Style;
  95. interface Styles;
  96. interface View;
  97. interface Views;
  98. interface GraphicCallbacks;
  99. interface IAppEvents;
  100. interface Macro;
  101. interface Macros;
  102. interface LayersSet;
  103. interface LayersSets;
  104.  
  105. // Single exported function
  106. cpp_quote("STDAPI IMSIGXGetXApplication(IApplication** ppApp);")
  107.  
  108. ///////////////////////////////////////////////////////////////////////////
  109. // Typedefs
  110. ///////////////////////////////////////////////////////////////////////////
  111. import "gxtypes.idl";
  112.  
  113. // Application and Global objects
  114. //
  115.     /*
  116.     * The global (nameless, session) object.
  117.     * Allows access to system properties and collections.
  118.     * Collections include Drawings collection, Filters collection, NamedColors collection,
  119.     * Properties collection and RegenMethods collection.
  120.     */
  121.     [
  122.          object
  123.         ,uuid(6A481100-E531-11CF-A115-00A024158DAF)
  124.         ,oleautomation
  125.         ,dual
  126.         ,helpcontext(0x10000000)
  127.         ,helpstring("The global (nameless, session) object.")
  128.     ]
  129.     interface IGlobal : IDispatch
  130.     {
  131.  
  132. ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  133.  
  134.         /**
  135.          * Returns the active Drawing object.
  136.          */
  137.         [
  138.              propget
  139.             ,helpcontext(0x10000001)
  140.             ,helpstring("Returns the active Drawing object.")
  141.         ]
  142.         HRESULT  ActiveDrawing(
  143.             [out, retval] IDrawing** prop // The active Drawing object.
  144.             );
  145.  
  146.         /**
  147.          * Returns the name of the active printer, as a string.
  148.          */
  149.         [
  150.              propget
  151.             ,hidden, restricted
  152.             ,helpcontext(0x10000002)
  153.             ,helpstring("Returns the name of the active printer, as a string.")
  154.         ]
  155.         HRESULT     ActivePrinter(
  156.             [out, retval] BSTR* prop // The printer name.
  157.             );
  158.  
  159.         /**
  160.          * Sets the active printer by name.
  161.          */
  162.         [
  163.              propput
  164.             ,hidden, restricted
  165.             ,helpcontext(0x10000002)
  166.             ,helpstring("Sets the the active printer by name.")
  167.         ]
  168.         HRESULT     ActivePrinter(
  169.             [in] BSTR prop // The printer name
  170.             );
  171.  
  172.         /**
  173.          * Returns the active Window object.
  174.          * @see TCADAPI TCWActiveWindow function
  175.          */
  176.         [
  177.              propget
  178.             ,hidden, restricted
  179.             ,helpcontext(0x10000003)
  180.             ,helpstring("Returns the active Window object.")
  181.         ]
  182.         HRESULT  ActiveWindow(
  183.             [out, retval] Window** prop // The active Window object.
  184.             );
  185.  
  186.         /**
  187.          * Returns the Application object's AddIns collection.
  188.          */
  189.         [
  190.              propget
  191.             ,hidden, restricted
  192.             ,helpcontext(0x10000004)
  193.             ,helpstring("Returns the Application object's AddIns collection.")
  194.         ]
  195.         HRESULT  AddIns(
  196.             [out, retval] AddIns** prop // The AddIns collection.
  197.             );
  198.  
  199.         /**
  200.          * Returns an Application object that represents the owner of the specified object.
  201.          */
  202.         [
  203.              propget
  204.             ,helpcontext(0x10000005)
  205.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  206.         ]
  207.         HRESULT  Application(
  208.             [out, retval] IApplication** prop // The Application object.
  209.             );
  210.  
  211.         /**
  212.          * Returns the Application object's Drawings collection, the collection of Drawing objects.
  213.          */
  214.         [
  215.              propget
  216.             ,helpcontext(0x10000006)
  217.             ,helpstring("Returns the Application object's Drawings collection, the collection of Drawing objects.")
  218.         ]
  219.         HRESULT  Drawings(
  220.             [out, retval] Drawings** prop // The Drawings collection.
  221.             );
  222.  
  223.         /**
  224.          * Returns the Application object's Filters collection.
  225.          */
  226.         [
  227.              propget
  228.             ,helpcontext(0x10000007)
  229.             ,helpstring("Returns the Application object's Filters collection.")
  230.         ]
  231.         HRESULT  Filters(
  232.             [out, retval] Filters** prop // The Filters collection.
  233.             );
  234.  
  235.         /**
  236.          * Returns the Application object's KeyBindings collection.
  237.          */
  238.         [
  239.              propget
  240.             ,hidden, restricted
  241.             ,helpcontext(0x10000008)
  242.             ,helpstring("Returns the Application object's KeyBindings collection.")
  243.         ]
  244.         HRESULT  KeyBindings(
  245.             [out, retval] KeyBindings** prop // The KeyBindings collection.
  246.             );
  247.  
  248.         /**
  249.          * Returns the name of the object, as a string.
  250.          * Name is the default property of the Application object.
  251.          */
  252.         [
  253.              propget
  254.             ,id(DISPID_VALUE)
  255.             ,helpcontext(0x10000009)
  256.             ,helpstring("Returns the name of the object, as a string.")
  257.         ]
  258.         HRESULT  Name(
  259.             [out, retval] BSTR* prop // The name of the object.
  260.             );
  261.  
  262.         /**
  263.          * Returns the Application object's NamedColors collection.
  264.          */
  265.         [
  266.              propget
  267.             ,helpcontext(0x1000000A)
  268.             ,helpstring("Returns the Application object's NamedColors collection.")
  269.         ]
  270.         HRESULT  NamedColors(
  271.             [out, retval] NamedColors** prop // The NamedColors collection.
  272.             );
  273.  
  274.         /**
  275.          * Returns the Application object's ApplicationOptions object.
  276.          */
  277.         [
  278.              propget
  279.             ,hidden, restricted
  280.             ,helpcontext(0x1000000B)
  281.             ,helpstring("Returns the Application object's ApplicationOptions object.")
  282.         ]
  283.         HRESULT  Options(
  284.             [out, retval] ApplicationOptions** prop // The ApplicationOptions object.
  285.             );
  286.  
  287.         /**
  288.          * Returns the parent object for the specified object.
  289.          * The parent of the Application object is itself.
  290.          */
  291.         [
  292.              propget
  293.             ,helpcontext(0x1000000C)
  294.             ,helpstring("Returns the parent object for the specified object.")
  295.         ]
  296.         HRESULT  Parent(
  297.             [out, retval] IApplication** prop // The parent object.
  298.             );
  299.  
  300.         /**
  301.          * Returns the Application object's RegenMethods collection.
  302.          */
  303.         [
  304.              propget
  305.             ,helpcontext(0x1000000D)
  306.             ,helpstring("Returns the Application object's RegenMethods collection.")
  307.         ]
  308.         HRESULT  RegenMethods(
  309.             [out, retval] RegenMethods** prop // The RegenMethods collection.
  310.             );
  311.  
  312.         /**
  313.          * Returns the Selection object of the active Drawing object.
  314.          */
  315.         [
  316.              propget
  317.             ,helpcontext(0x1000000E)
  318.             ,helpstring("Returns the selection of the active Drawing object.")
  319.         ]
  320.         HRESULT  Selection(
  321.             [out, retval] Selection** prop // The Selection object.
  322.             );
  323.  
  324.         /**
  325.          * Sets the text in the Application object's status bar.
  326.          */
  327.         [
  328.              propput
  329.             ,hidden, restricted
  330.             ,helpcontext(0x1000000F)
  331.             ,helpstring("Sets the text in the Application object's status bar.")
  332.         ]
  333.         HRESULT  StatusBar(
  334.             [in] BSTR prop // The text to set.
  335.             );
  336.  
  337.         /**
  338.          * Returns the Application object's CommandBars collection.
  339.          */
  340.         [
  341.              propget
  342.             ,hidden, restricted
  343.             ,helpcontext(0x10000010)
  344.             ,helpstring("Returns the Application object's CommandBars collection.")
  345.         ]
  346.         HRESULT  CommandBars(
  347.             [out, retval] CommandBars** prop // The CommandBars collection.
  348.             );
  349.  
  350.         /**
  351.          * Returns the Application object's Tools collection.
  352.          */
  353.         [
  354.              propget
  355.             ,helpcontext(0x10000011)
  356.             ,helpstring("Returns the Application object's Tools collection.")
  357.         ]
  358.         HRESULT  Tools(
  359.             [out, retval] Tools** prop // The Tools collection.
  360.             );
  361.  
  362.         /**
  363.          * Returns the Application object's Windows collection, the collection of Window objects.
  364.          */
  365.         [
  366.              propget
  367.             ,hidden, restricted
  368.             ,helpcontext(0x10000012)
  369.             ,helpstring("Returns the Application object's Windows collection, the collection of Window objects.")
  370.         ]
  371.         HRESULT  Windows(
  372.             [out, retval] Windows** prop // The Windows collection.
  373.             );
  374.  
  375. /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  376.  
  377.         /**
  378.          * Composes a key code out of a number of key combinations.
  379.          */
  380.         [
  381.              helpcontext(0x10000013)
  382.             ,helpstring("Composes a key code out of a number of key combinations.")
  383.             ,hidden, restricted
  384.         ]
  385.         HRESULT  BuildKeyCode(
  386.             [in] ImsiKey BaseKey, // The base key
  387.             [in, optional] VARIANT* ModKey, // The key modifier
  388.             [in, optional] VARIANT* ModKey2, // A second key modifier
  389.             [in, optional] VARIANT* ModKey3, // A third key modifier
  390.             [out, retval] long* prop // The calculated key code
  391.             );
  392.  
  393.         /**
  394.          * Returns key codes as a string.
  395.          */
  396.         [
  397.              helpcontext(0x10000014)
  398.             ,helpstring("Returns key codes as a string.")
  399.             ,hidden, restricted
  400.         ]
  401.         HRESULT  KeyString(
  402.             [in] long KeyCode, // The key code
  403.             [in, optional] VARIANT* KeyCode2, // A second key code
  404.             [out, retval] BSTR* prop // The returned string
  405.             );
  406.  
  407.         [
  408.              propget
  409.             ,helpcontext(0x10000050)
  410.             ,helpstring("Returns the Application object's TieMethods collection.")
  411.         ]
  412.         HRESULT  TieMethods(
  413.             [out, retval] IDispatch** prop // The TieMethods collection.
  414.             );
  415.  
  416.         /**
  417.          * Returns the Application object's Renders collection.
  418.          */
  419.         [
  420.              propget
  421.             ,helpcontext(0x10000051)
  422.             ,helpstring("Returns the Application object's Renders collection.")
  423.         ]
  424.         HRESULT  Renders(
  425.             [out, retval] IDispatch** prop // The Renders collection.
  426.             );
  427.          
  428.         /**
  429.          * Returns the Application object's ToolEvents interface.
  430.          */
  431.         [
  432.              propget
  433.             ,helpcontext(0x10000052)
  434.             ,helpstring("Returns the Application object's ToolEvents interface.")
  435.         ]
  436.         HRESULT  ToolEvents(
  437.             [out, retval] IDispatch** prop // The ToolEvents interface
  438.             );
  439.  
  440.         /**
  441.          * Returns the Application object's Properties collection.
  442.          * For the complete list of available Application Properties, follow
  443.          * <A HREF="appprops.html">this link</A>.
  444.          *
  445.          * @see TCADAPI TCWAppPropertyGet/Set functions
  446.          */
  447.         [
  448.              propget
  449.             ,helpcontext(0x10000022)
  450.             ,helpstring("Returns the Application object's Properties collection.")
  451.         ]
  452.         HRESULT  Properties(
  453.             [out, retval] Properties** prop // The Properties collection.
  454.             );
  455.     };
  456.  
  457.     /**
  458.      * The application (session) object.
  459.      * Allows access to system properties and collections.
  460.      * Collections include Drawings collection, Filters collection, NamedColors collection,
  461.      * Properties collection and RegenMethods collection.
  462.      */
  463.     [
  464.          object
  465.         ,uuid(6A481101-E531-11CF-A115-00A024158DAF)
  466.         ,oleautomation
  467.         ,dual
  468.         ,helpcontext(0x10000000)
  469.         ,helpstring("The application (session) object.")
  470.     ]
  471.     interface IApplication : IDispatch
  472.     {
  473.  
  474. ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  475.  
  476.         /**
  477.          * Returns the active Drawing object.
  478.          */
  479.         [
  480.              propget
  481.             ,helpcontext(0x10000001)
  482.             ,helpstring("Returns the active Drawing object.")
  483.         ]
  484.         HRESULT  ActiveDrawing(
  485.             [out, retval] IDrawing** prop // The active Drawing object.
  486.             );
  487.  
  488.         /**
  489.          * Returns the name of the active printer, as a string.
  490.          */
  491.         [
  492.              propget
  493.             ,hidden, restricted
  494.             ,helpcontext(0x10000002)
  495.             ,helpstring("Returns the name of the active printer, as a string.")
  496.         ]
  497.         HRESULT     ActivePrinter(
  498.             [out, retval] BSTR* prop // The printer name.
  499.             );
  500.  
  501.         /**
  502.          * Sets the active printer by name.
  503.          */
  504.         [
  505.              propput
  506.             ,hidden, restricted
  507.             ,helpcontext(0x10000002)
  508.             ,helpstring("Sets the the active printer by name.")
  509.         ]
  510.         HRESULT     ActivePrinter(
  511.             [in] BSTR prop // The printer name.
  512.             );
  513.  
  514.         /**
  515.          * Returns the active Window object.
  516.          *
  517.          * @see TCADAPI TCWActiveWindow function
  518.          */
  519.         [
  520.              propget
  521.             ,hidden, restricted
  522.             ,helpcontext(0x10000003)
  523.             ,helpstring("Returns the active Window object.")
  524.         ]
  525.         HRESULT  ActiveWindow(
  526.             [out, retval] Window** prop // The active Window object.
  527.             );
  528.  
  529.         /**
  530.          * Returns the Application object's AddIns collection.
  531.          */
  532.         [
  533.              propget
  534.             ,hidden, restricted
  535.             ,helpcontext(0x10000004)
  536.             ,helpstring("Returns the Application object's AddIns collection.")
  537.         ]
  538.         HRESULT  AddIns(
  539.             [out, retval] AddIns** prop // The AddIns collection.
  540.             );
  541.  
  542.         /**
  543.          * Returns an Application object that represents the owner of the specified object.
  544.          */
  545.         [
  546.              propget
  547.             ,helpcontext(0x10000005)
  548.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  549.         ]
  550.         HRESULT  Application(
  551.             [out, retval] IApplication** prop // The Application object.
  552.             );
  553.  
  554.         /**
  555.          * Returns the build number, as a string.
  556.          */
  557.         [
  558.              propget
  559.             ,helpcontext(0x10000006)
  560.             ,helpstring("Returns the build number, as a string.")
  561.         ]
  562.         HRESULT  Build(
  563. #if (_USE_LCID)
  564.              [in, lcid]    long lcid
  565. #else
  566.              [in, optional]    long lcid
  567. #endif
  568.             ,[out, retval] BSTR* prop // The build number, as a string.
  569.             );
  570.  
  571.         /**
  572.          * Returns the Application object's ApplicationCallbacks object.
  573.          */
  574.         [
  575.              propget
  576.             ,hidden, restricted
  577.             ,helpcontext(0x10000007)
  578.             ,helpstring("Returns the Application object's ApplicationCallbacks object.")
  579.         ]
  580.         HRESULT  Callbacks(
  581.             [out, retval] ApplicationCallbacks** prop // The ApplicationCallbacks object.
  582.             );
  583.  
  584.         /**
  585.          * Returns the text that appears in the title bar of the main window.
  586.          */
  587.         [
  588.              propget
  589. //            ,hidden, restricted
  590.             ,helpcontext(0x10000008)
  591.             ,helpstring("Returns the text that appears in the title bar of the main window.")
  592.         ]
  593.         HRESULT  Caption(
  594.             [out, retval] BSTR* prop // The title bar caption, as a string.
  595.             );
  596.  
  597.         /**
  598.          * Sets the text that appears in the title bar of the main window.
  599.          */
  600.         [
  601.              propput
  602.             ,hidden, restricted
  603.             ,helpcontext(0x10000008)
  604.             ,helpstring("Sets the text that appears in the title bar of the main window.")
  605.         ]
  606.         HRESULT  Caption(
  607.             [in] BSTR prop // The title bar caption, as a string.
  608.             );
  609.  
  610.         /**
  611.          * True if the Blocks window is displayed.
  612.          */
  613.         [
  614.              propget
  615.             ,hidden, restricted
  616.             ,helpcontext(0x10000009)
  617.             ,helpstring("True if the Blocks window is displayed.")
  618.         ]
  619.         HRESULT  DisplayBlocksWindow(
  620.             [out, retval] IMSI_BOOL* prop // True if the Blocks window is displayed.
  621.             );
  622.  
  623.         /**
  624.          * True if the Blocks window is displayed.
  625.          */
  626.         [
  627.              propput
  628.             ,hidden, restricted
  629.             ,helpcontext(0x10000009)
  630.             ,helpstring("True if the Blocks window is displayed.")
  631.         ]
  632.         HRESULT  DisplayBlocksWindow(
  633.             [in] IMSI_BOOL prop // True if the Blocks window is displayed.
  634.             );
  635.  
  636.         /**
  637.          * True if the edit bar is displayed.
  638.          */
  639.         [
  640.              propget
  641.             ,hidden, restricted
  642.             ,helpcontext(0x1000000A)
  643.             ,helpstring("True if the edit bar is displayed.")
  644.         ]
  645.         HRESULT  DisplayEditBar(
  646.             [out, retval] IMSI_BOOL* prop // True if the edit bar is displayed.
  647.             );
  648.  
  649.         /**
  650.          * True if the edit bar is displayed.
  651.          */
  652.         [
  653.              propput
  654.             ,hidden, restricted
  655.             ,helpcontext(0x1000000A)
  656.             ,helpstring("True if the edit bar is displayed.")
  657.         ]
  658.         HRESULT  DisplayEditBar(
  659.             [in] IMSI_BOOL prop // True if the edit bar is displayed.
  660.             );
  661.  
  662.         /**
  663.          * True if TurboCAD is in full-screen mode.
  664.          */
  665.         [
  666.              propget
  667.             ,hidden, restricted
  668.             ,helpcontext(0x1000000B)
  669.             ,helpstring("True if TurboCAD is in full-screen mode.")
  670.         ]
  671.         HRESULT  DisplayFullScreen(
  672.             [out, retval] IMSI_BOOL* prop // True if TurboCAD is in full-screen mode.
  673.             );
  674.  
  675.         /**
  676.          * True if TurboCAD is in full-screen mode.
  677.          */
  678.         [
  679.              propput
  680.             ,hidden, restricted
  681.             ,helpcontext(0x1000000B)
  682.             ,helpstring("True if TurboCAD is in full-screen mode.")
  683.         ]
  684.         HRESULT  DisplayFullScreen(
  685.             [in] IMSI_BOOL prop // True if TurboCAD is in full-screen mode.
  686.             );
  687.  
  688.         /**
  689.          * True if the Info window is displayed.
  690.          */
  691.         [
  692.              propget
  693.             ,hidden, restricted
  694.             ,helpcontext(0x1000000C)
  695.             ,helpstring("True if the Info window is displayed.")
  696.         ]
  697.         HRESULT  DisplayInfoWindow(
  698.             [out, retval] IMSI_BOOL* prop // True if the Info window is displayed.
  699.             );
  700.  
  701.         /**
  702.          * True if the Info window is displayed.
  703.          */
  704.         [
  705.              propput
  706.             ,hidden, restricted
  707.             ,helpcontext(0x1000000C)
  708.             ,helpstring("True if the Info window is displayed.")
  709.         ]
  710.         HRESULT  DisplayInfoWindow(
  711.             [in] IMSI_BOOL prop // True if the Info window is displayed.
  712.             );
  713.  
  714.         /**
  715.          * True if rulers are visible for all drawings.
  716.          */
  717.         [
  718.              propget
  719.             ,hidden, restricted
  720.             ,helpcontext(0x1000000D)
  721.             ,helpstring("True if rulers are visible for all drawings.")
  722.         ]
  723.         HRESULT  DisplayRulers(
  724.             [out, retval] IMSI_BOOL* prop // True if rulers are visible for all drawings.
  725.             );
  726.  
  727.         /**
  728.          * True if rulers are visible for all drawings.
  729.          */
  730.         [
  731.              propput
  732.             ,hidden, restricted
  733.             ,helpcontext(0x1000000D)
  734.             ,helpstring("True if rulers are visible for all drawings.")
  735.         ]
  736.         HRESULT  DisplayRulers(
  737.             [in] IMSI_BOOL prop // True if rulers are visible for all drawings.
  738.             );
  739.  
  740.         /**
  741.          * True if scroll bars are visible for all drawings.
  742.          */
  743.         [
  744.              propget
  745.             ,hidden, restricted
  746.             ,helpcontext(0x1000000E)
  747.             ,helpstring("True if scroll bars are visible for all drawings.")
  748.         ]
  749.         HRESULT  DisplayScrollBars(
  750.             [out, retval] IMSI_BOOL* prop // True if scroll bars are visible.
  751.             );
  752.  
  753.         /**
  754.          * True if scroll bars are visible for all drawings.
  755.          */
  756.         [
  757.              propput
  758.             ,hidden, restricted
  759.             ,helpcontext(0x1000000E)
  760.             ,helpstring("True if scroll bars are visible for all drawings.")
  761.         ]
  762.         HRESULT  DisplayScrollBars(
  763.             [in] IMSI_BOOL prop // True if scroll bars are visible.
  764.             );
  765.  
  766.         /**
  767.          * True if the status bar is displayed.
  768.          */
  769.         [
  770.              propget
  771.             ,hidden, restricted
  772.             ,helpcontext(0x1000000F)
  773.             ,helpstring("True if the status bar is displayed.")
  774.         ]
  775.         HRESULT  DisplayStatusBar(
  776.             [out, retval] IMSI_BOOL* prop // True if the status bar is displayed.
  777.             );
  778.  
  779.         /**
  780.          * True if the status bar is displayed.
  781.          */
  782.         [
  783.              propput
  784.             ,hidden, restricted
  785.             ,helpcontext(0x1000000F)
  786.             ,helpstring("True if the status bar is displayed.")
  787.         ]
  788.         HRESULT  DisplayStatusBar(
  789.             [in] IMSI_BOOL prop // True if the status bar is displayed.
  790.             );
  791.  
  792.         /**
  793.          * True if the Status dialog window is displayed.
  794.          */
  795.         [
  796.              propget
  797.             ,hidden, restricted
  798.             ,helpcontext(0x10000010)
  799.             ,helpstring("True if the Status dialog window is displayed.")
  800.         ]
  801.         HRESULT  DisplayStatusDialog(
  802.             [out, retval] IMSI_BOOL* prop // True if the Status dialog window is displayed.
  803.             );
  804.  
  805.         /**
  806.          * True if the Status dialog window is displayed.
  807.          */
  808.         [
  809.              propput
  810.             ,hidden, restricted
  811.             ,helpcontext(0x10000010)
  812.             ,helpstring("True if the Status dialog window is displayed.")
  813.         ]
  814.         HRESULT  DisplayStatusDialog(
  815.             [in] IMSI_BOOL prop // True if the Status dialog window is displayed.
  816.             );
  817.  
  818.         /**
  819.          * True if the Symbol window is displayed.
  820.          */
  821.         [
  822.              propget
  823.             ,hidden, restricted
  824.             ,helpcontext(0x10000011)
  825.             ,helpstring("True if the Symbol window is displayed.")
  826.         ]
  827.         HRESULT  DisplaySymbolWindow(
  828.             [out, retval] IMSI_BOOL* prop // True if the Symbol window is displayed.
  829.             );
  830.  
  831.         /**
  832.          * True if the Symbol window is displayed.
  833.          */
  834.         [
  835.              propput
  836.             ,hidden, restricted
  837.             ,helpcontext(0x10000011)
  838.             ,helpstring("True if the Symbol window is displayed.")
  839.         ]
  840.         HRESULT  DisplaySymbolWindow(
  841.             [in] IMSI_BOOL prop // True if the Symbol window is displayed.
  842.             );
  843.  
  844.         /**
  845.          * Returns the Application object's Drawings collection, the collection of Drawing objects.
  846.          */
  847.         [
  848.              propget
  849.             ,helpcontext(0x10000012)
  850.             ,helpstring("Returns the Application object's Drawings collection, the collection of Drawing objects.")
  851.         ]
  852.         HRESULT  Drawings(
  853.             [out, retval] Drawings** prop // The Drawings collection.
  854.             );
  855.  
  856.         /**
  857.          * Returns the Application object's Filters collection.
  858.          */
  859.         [
  860.              propget
  861.             ,helpcontext(0x10000013)
  862.             ,helpstring("Returns the Application object's Filters collection.")
  863.         ]
  864.         HRESULT  Filters(
  865.             [out, retval] Filters** prop // The Filters collection.
  866.             );
  867.  
  868.         /**
  869.          * Returns the height of the main window.
  870.          */
  871.         [
  872.              propget
  873.             ,hidden, restricted
  874.             ,helpcontext(0x10000014)
  875.             ,helpstring("Returns the height of the main window.")
  876.         ]
  877.         HRESULT  Height(
  878.             [out, retval] double* prop // The height of the main window.
  879.             );
  880.  
  881.         /**
  882.          * Sets the height of the main window.
  883.          */
  884.         [
  885.              propput
  886.             ,hidden, restricted
  887.             ,helpcontext(0x10000014)
  888.             ,helpstring("Sets the height of the main window.")
  889.         ]
  890.         HRESULT  Height(
  891.             [in] double prop // The height of the main window.
  892.             );
  893.  
  894.         /**
  895.          * True if TurboCAD is in interactive mode.
  896.          */
  897.         [
  898.              propget
  899.             ,hidden, restricted
  900.             ,helpcontext(0x10000015)
  901.             ,helpstring("True if TurboCAD is in interactive mode.")
  902.         ]
  903.         HRESULT  Interactive(
  904.             [out, retval] IMSI_BOOL* prop // True if TurboCAD is in interactive mode.
  905.             );
  906.  
  907.         /**
  908.          * True if TurboCAD is in interactive mode.
  909.          */
  910.         [
  911.              propput
  912.             ,hidden, restricted
  913.             ,helpcontext(0x10000015)
  914.             ,helpstring("True if TurboCAD is in interactive mode.")
  915.         ]
  916.         HRESULT  Interactive(
  917.             [in] IMSI_BOOL prop // True if TurboCAD is in interactive mode.
  918.             );
  919.  
  920.         /**
  921.          * Returns the Application object's KeyBindings collection.
  922.          */
  923.         [
  924.              propget
  925.             ,hidden, restricted
  926.             ,helpcontext(0x10000016)
  927.             ,helpstring("Returns the Application object's KeyBindings collection.")
  928.         ]
  929.         HRESULT  KeyBindings(
  930.             [out, retval] KeyBindings** prop // The KeyBindings collection.
  931.             );
  932.  
  933.         /**
  934.          * Returns the distance from the left edge of the physical screen to the left edge of the main window, in points.
  935.          */
  936.         [
  937.              propget
  938.             ,hidden, restricted
  939.             ,helpcontext(0x10000017)
  940.             ,helpstring("Returns the distance from the left edge of the physical screen to the left edge of the main window, in points.")
  941.         ]
  942.         HRESULT  Left(
  943.             [out, retval] double* prop // The main window's left edge distance.
  944.             );
  945.  
  946.         /**
  947.          * Sets the distance from the left edge of the physical screen to the left edge of the main window, in points.
  948.          */
  949.         [
  950.              propput
  951.             ,hidden, restricted
  952.             ,helpcontext(0x10000017)
  953.             ,helpstring("Sets the distance from the left edge of the physical screen to the left edge of the main window, in points.")
  954.         ]
  955.         HRESULT  Left(
  956.             [in] double prop // The main window's left edge distance.
  957.             );
  958.  
  959.         /**
  960.          * Returns the path to the LIBRARY directory, not including the final separator.
  961.          */
  962.         [
  963.              propget
  964.             ,hidden, restricted
  965.             ,helpcontext(0x10000018)
  966.             ,helpstring("Returns the path to the LIBRARY directory, not including the final separator.")
  967.         ]
  968.         HRESULT  LibraryPath(
  969.             [out, retval] BSTR* prop // The path name, as a string.
  970.             );
  971.  
  972.         /**
  973.          * Sets the path to the LIBRARY directory, not including the final separator.
  974.          */
  975.         [
  976.              propput
  977.             ,hidden, restricted
  978.             ,helpcontext(0x10000018)
  979.             ,helpstring("Sets the path to the LIBRARY directory, not including the final separator.")
  980.         ]
  981.         HRESULT  LibraryPath(
  982.             [in] BSTR prop // The path name, as a string.
  983.             );
  984.  
  985.         /**
  986.          * Returns the name of the Application object, as a string.
  987.          * Name is the default property of the Application object.
  988.          */
  989.         [
  990.              propget
  991.             ,id(DISPID_VALUE)
  992.             ,helpcontext(0x10000019)
  993.             ,helpstring("Returns the name of the Application object, as a string.")
  994.         ]
  995.         HRESULT  Name(
  996.             [out, retval] BSTR* prop // The name of the Application object.
  997.             );
  998.  
  999.         /**
  1000.          * Returns the Application object's NamedColors collection.
  1001.          */
  1002.         [
  1003.              propget
  1004.             ,helpcontext(0x1000001A)
  1005.             ,helpstring("Returns the Application object's NamedColors collection.")
  1006.         ]
  1007.         HRESULT  NamedColors(
  1008.             [out, retval] NamedColors** prop // The NamedColors collection.
  1009.             );
  1010.  
  1011.         /**
  1012.          * Returns the name and version number of the current operating system.
  1013.          */
  1014.         [
  1015.              propget
  1016.             ,hidden, restricted
  1017.             ,helpcontext(0x1000001B)
  1018.             ,helpstring("Returns the name and version number of the current operating system.")
  1019.         ]
  1020.         HRESULT  OperatingSystem(
  1021.             [out, retval] BSTR* prop // The name and version of the operating system.
  1022.             );
  1023.  
  1024.         /**
  1025.          * Returns the Application object's ApplicationOptions object.
  1026.          */
  1027.         [
  1028.              propget
  1029.             ,hidden, restricted
  1030.             ,helpcontext(0x1000001C)
  1031.             ,helpstring("Returns the Application object's ApplicationOptions object.")
  1032.         ]
  1033.         HRESULT  Options(
  1034.             [out, retval] ApplicationOptions** prop // The ApplicationOptions object.
  1035.             );
  1036.  
  1037.         /**
  1038.          * Returns the registered organization name, as a string.
  1039.          */
  1040.         [
  1041.              propget
  1042.             ,hidden, restricted
  1043.             ,helpcontext(0x1000001D)
  1044.             ,helpstring("Returns the registered organization name, as a string.")
  1045.         ]
  1046.         HRESULT  OrganizationName(
  1047.             [out, retval] BSTR* prop // The organization name.
  1048.             );
  1049.  
  1050.         /**
  1051.          * Returns the parent object for the specified object.
  1052.          * The parent of the Application object is itself.
  1053.          */
  1054.         [
  1055.              propget
  1056.             ,helpcontext(0x1000001E)
  1057.             ,helpstring("Returns the parent object for the specified object.")
  1058.         ]
  1059.         HRESULT  Parent(
  1060.             [out, retval] IApplication** prop // The parent object.
  1061.             );
  1062.  
  1063.         /**
  1064.          * Returns the complete path of the object, as a string, without including the final separator and name of the object.
  1065.          */
  1066.         [
  1067.              propget
  1068.             ,helpcontext(0x1000001F)
  1069.             ,helpstring("Returns the complete path of the object, as a string, without including the final separator and name of the object.")
  1070.         ]
  1071.         HRESULT  Path(
  1072. #if (_USE_LCID)
  1073.              [in, lcid]    long lcid
  1074. #else
  1075.              [in, optional]    long lcid
  1076. #endif
  1077.             ,[out, retval] BSTR* prop // The path.
  1078.             );
  1079.  
  1080.         /**
  1081.          * Returns the profile name.
  1082.          */
  1083.         [
  1084.              propget
  1085.             ,helpcontext(0x10000020)
  1086.             ,helpstring("Returns the profile name.")
  1087.         ]
  1088.         HRESULT  ProfileName(
  1089. #if (_USE_LCID)
  1090.              [in, lcid]    long lcid
  1091. #else
  1092.              [in, optional]    long lcid
  1093. #endif
  1094.             ,[out, retval] BSTR* prop // The name of the profile file.
  1095.             );
  1096.  
  1097.         /**
  1098.          * Sets the profile name.
  1099.          */
  1100.         [
  1101.              propput
  1102.             ,helpcontext(0x10000020)
  1103.             ,helpstring("Sets the profile name.")
  1104.         ]
  1105.         HRESULT  ProfileName(
  1106. #if (_USE_LCID)
  1107.              [in, lcid]    long lcid
  1108. #else
  1109.              [in, optional]    long lcid
  1110. #endif
  1111.             ,[in] BSTR prop // The profile name
  1112.             );
  1113.  
  1114.         /**
  1115.          * Display a warning or notification message.
  1116.          */
  1117.         [
  1118.              helpcontext(0x10000021)
  1119.             ,helpstring("Display a warning or notification message.")
  1120.         ]
  1121.         HRESULT  MessageBox(
  1122.             [in] BSTR Message, // Message string
  1123.             [in, optional] VARIANT* Flags, // MB_ flags for API ::MessageBox call
  1124.             [out, retval] long* prop // Id of button that dismissed the dialog
  1125.             );
  1126.  
  1127.         /**
  1128.          * Returns the Application object's Properties collection.
  1129.          * For the complete list of available Application Properties, follow
  1130.          * <A HREF="appprops.html">this link</A>.
  1131.          *
  1132.          * @see TCADAPI TCWAppPropertyGet/Set functions
  1133.          */
  1134.         [
  1135.              propget
  1136.             ,helpcontext(0x10000022)
  1137.             ,helpstring("Returns the Application object's Properties collection.")
  1138.         ]
  1139.         HRESULT  Properties(
  1140.             [out, retval] Properties** prop // The Properties collection.
  1141.             );
  1142.  
  1143.         /**
  1144.          * Returns the Application object's RegenMethods collection.
  1145.          */
  1146.         [
  1147.              propget
  1148.             ,helpcontext(0x10000023)
  1149.             ,helpstring("Returns the Application object's RegenMethods collection.")
  1150.         ]
  1151.         HRESULT  RegenMethods(
  1152.             [out, retval] RegenMethods** prop // The RegenMethods collection.
  1153.             );
  1154.  
  1155.         /**
  1156.          * Returns the Application object's ScaleSysColl.
  1157.          */
  1158.         [
  1159.              propget
  1160.             ,hidden, restricted
  1161.             ,helpcontext(0x10000024)
  1162.             ,helpstring("Returns the Application object's ScaleSysColl.")
  1163.         ]
  1164.         HRESULT  ScaleSystems(
  1165.             [out, retval] ScaleSystems** prop // The ScaleSysColl.
  1166.             );
  1167.  
  1168.         /**
  1169.          * True if screen updating is on.
  1170.          */
  1171.         [
  1172.              propget
  1173.             ,hidden, restricted
  1174.             ,helpcontext(0x10000025)
  1175.             ,helpstring("True if screen updating is on.")
  1176.         ]
  1177.         HRESULT  ScreenUpdating(
  1178.             [out, retval] IMSI_BOOL* prop // True if screen updating is on.
  1179.             );
  1180.  
  1181.         /**
  1182.          * True if screen updating is on.
  1183.          */
  1184.         [
  1185.              propput
  1186.             ,hidden, restricted
  1187.             ,helpcontext(0x10000025)
  1188.             ,helpstring("True if screen updating is on.")
  1189.         ]
  1190.         HRESULT  ScreenUpdating(
  1191.             [in] IMSI_BOOL prop // True if screen updating is on.
  1192.             );
  1193.  
  1194.         /**
  1195.          * Returns the Selection object of the active Drawing object.
  1196.          */
  1197.         [
  1198.              propget
  1199.             ,helpcontext(0x10000026)
  1200.             ,helpstring("Returns the selection of the active Drawing object.")
  1201.         ]
  1202.         HRESULT  Selection(
  1203.             [out, retval] Selection** prop // The Selection object.
  1204.             );
  1205.  
  1206.         /**
  1207.          * True if ToolTips are turned on.
  1208.          */
  1209.         [
  1210.              propget
  1211.             ,hidden, restricted
  1212.             ,helpcontext(0x10000027)
  1213.             ,helpstring("True if ToolTips are turned on.")
  1214.         ]
  1215.         HRESULT  ShowToolTips(
  1216.             [out, retval] IMSI_BOOL* prop // True if ToolTips are turned on.
  1217.             );
  1218.  
  1219.         /**
  1220.          * True if ToolTips are turned on.
  1221.          */
  1222.         [
  1223.              propput
  1224.             ,hidden, restricted
  1225.             ,helpcontext(0x10000027)
  1226.             ,helpstring("True if ToolTips are turned on.")
  1227.         ]
  1228.         HRESULT  ShowToolTips(
  1229.             [in] IMSI_BOOL prop // True if ToolTips are turned on.
  1230.             );
  1231.  
  1232.         /**
  1233.          * Returns the active snap modes.
  1234.          * <p>
  1235.          * A long integer that can be tested against the ImsiSnapMode enumerated values.
  1236.          */
  1237.         [
  1238.              propget
  1239.             ,helpcontext(0x10000028)
  1240.             ,helpstring("Returns the active snap modes.")
  1241.         ]
  1242.         HRESULT  SnapModes(
  1243.             [out, retval] long* prop // The active snap modes.
  1244.             );
  1245.  
  1246.         /**
  1247.          * Sets the active snap modes.
  1248.          */
  1249.         [
  1250.              propput
  1251.             ,helpcontext(0x10000028)
  1252.             ,helpstring("Sets the active snap modes.")
  1253.         ]
  1254.         HRESULT  SnapModes(
  1255.             [in] long prop // The active snap modes, composed of bitwise or'ed ImsiSnapMode values.
  1256.             );
  1257.  
  1258.         /**
  1259.          * Sets the text in the Application object's status bar.
  1260.          */
  1261.         [
  1262.              propput
  1263.             ,hidden, restricted
  1264.             ,helpcontext(0x10000029)
  1265.             ,helpstring("Sets the text in the Application object's status bar.")
  1266.         ]
  1267.         HRESULT  StatusBar(
  1268.             [in] BSTR prop // The text to set.
  1269.             );
  1270.  
  1271.         /**
  1272.          * Appends or replaces the text in the Application object's status dialog.
  1273.          */
  1274.         [
  1275.              propput
  1276.             ,hidden, restricted
  1277.             ,helpcontext(0x1000002A)
  1278.             ,helpstring("Appends or replaces the text in the Application object's status dialog.")
  1279.         ]
  1280.         HRESULT  StatusDialogText(
  1281. //             [in] BSTR prop, // The text to append or replace.
  1282.              [in, optional] VARIANT* Replace // True to replace text.
  1283.             ,[in] BSTR prop // The text to append or replace.
  1284.             );
  1285.  
  1286.         /**
  1287.          * Returns the object's Tables collection.
  1288.          */
  1289.         [
  1290.              propget
  1291.             ,hidden, restricted
  1292.             ,helpcontext(0x1000002B)
  1293.             ,helpstring("Returns the object's Tables collection.")
  1294.         ]
  1295.         HRESULT  Tables(
  1296.             [out, retval] Tables** prop // The Tables collection.
  1297.             );
  1298.  
  1299.         /**
  1300.          * Returns the local path where templates are stored.
  1301.          */
  1302.         [
  1303.              propget
  1304.             ,hidden, restricted
  1305.             ,helpcontext(0x1000002C)
  1306.             ,helpstring("Returns the local path where templates are stored.")
  1307.         ]
  1308.         HRESULT  TemplatesPath(
  1309.             [out, retval] BSTR* prop // The path name.
  1310.             );
  1311.  
  1312.         /**
  1313.          * Sets the local path where templates are stored.
  1314.          */
  1315.         [
  1316.              propput
  1317.             ,hidden, restricted
  1318.             ,helpcontext(0x1000002C)
  1319.             ,helpstring("Sets the local path where templates are stored.")
  1320.         ]
  1321.         HRESULT  TemplatesPath(
  1322.             [in] BSTR prop // The path name.
  1323.             );
  1324.  
  1325.         /**
  1326.          * Returns the Application object's CommandBars collection.
  1327.          */
  1328.         [
  1329.              propget
  1330.             ,hidden, restricted
  1331.             ,helpcontext(0x1000002D)
  1332.             ,helpstring("Returns the Application object's CommandBars collection.")
  1333.         ]
  1334.         HRESULT  CommandBars(
  1335.             [out, retval] CommandBars** prop // The CommandBars collection.
  1336.             );
  1337.  
  1338.         /**
  1339.          * Returns the Application object's Tools collection.
  1340.          */
  1341.         [
  1342.              propget
  1343.             ,helpcontext(0x1000002E)
  1344.             ,helpstring("Returns the Application object's Tools collection.")
  1345.         ]
  1346.         HRESULT  Tools(
  1347.             [out, retval] Tools** prop // The Tools collection.
  1348.             );
  1349.  
  1350.         /**
  1351.          * The distance from the top edge of the physical screen to the top edge of the main window, in points.
  1352.          */
  1353.         [
  1354.              propget
  1355.             ,hidden, restricted
  1356.             ,helpcontext(0x1000002F)
  1357.             ,helpstring("The distance from the top edge of the physical screen to the top edge of the main window, in points.")
  1358.         ]
  1359.         HRESULT  Top(
  1360.             [out, retval] double* prop // The main window's top edge distance.
  1361.             );
  1362.  
  1363.         /**
  1364.          * The distance from the top edge of the physical screen to the top edge of the main window, in points.
  1365.          */
  1366.         [
  1367.              propput
  1368.             ,hidden, restricted
  1369.             ,helpcontext(0x1000002F)
  1370.             ,helpstring("The distance from the top edge of the physical screen to the top edge of the main window, in points.")
  1371.         ]
  1372.         HRESULT  Top(
  1373.             [in] double prop // The main window's top edge distance.
  1374.             );
  1375.  
  1376.         /**
  1377.          * Returns the height of the space that can be used in the main window area (the window is not maximized).
  1378.          */
  1379.         [
  1380.              propget
  1381.             ,hidden, restricted
  1382.             ,helpcontext(0x10000030)
  1383.             ,helpstring("Returns the height of the space that can be used in the main window area (the window is not maximized).")
  1384.         ]
  1385.         HRESULT  UsableHeight(
  1386.             [out, retval] double* prop // The usable height.
  1387.             );
  1388.  
  1389.         /**
  1390.          * Returns the width of the space that can be used in the main window area (the window is not maximized).
  1391.          */
  1392.         [
  1393.              propget
  1394.             ,hidden, restricted
  1395.             ,helpcontext(0x10000031)
  1396.             ,helpstring("Returns the width of the space that can be used in the main window area (the window is not maximized).")
  1397.         ]
  1398.         HRESULT  UsableWidth(
  1399.             [out, retval] double* prop // The usable width.
  1400.             );
  1401.  
  1402.         /**
  1403.          * True if the user interface is active.
  1404.          */
  1405.         [
  1406.              propget
  1407.             ,helpcontext(0x10000032)
  1408.             ,helpstring("True if the user interface is active.")
  1409.         ]
  1410.         HRESULT  UserControl(
  1411.             [out, retval] IMSI_BOOL* prop // True if the user interface is active.
  1412.             );
  1413.  
  1414.         /**
  1415.          * True if the user interface is active.
  1416.          */
  1417.         [
  1418.              propput
  1419.             ,helpcontext(0x10000032)
  1420.             ,helpstring("True if the user interface is active.")
  1421.         ]
  1422.         HRESULT  UserControl(
  1423.             [in] IMSI_BOOL prop // True if the user interface is active.
  1424.             );
  1425.  
  1426.         /**
  1427.          * Returns the name of the current user, as a string.
  1428.          */
  1429.         [
  1430.              propget
  1431.             ,hidden, restricted
  1432.             ,helpcontext(0x10000033)
  1433.             ,helpstring("Returns the name of the current user, as a string.")
  1434.         ]
  1435.         HRESULT  UserName(
  1436.             [out, retval] BSTR* prop // The user name.
  1437.             );
  1438.  
  1439.         /**
  1440.          * Sets the name of the current user, as a string.
  1441.          */
  1442.         [
  1443.              propput
  1444.             ,hidden, restricted
  1445.             ,helpcontext(0x10000033)
  1446.             ,helpstring("Sets the name of the current user, as a string.")
  1447.         ]
  1448.         HRESULT  UserName(
  1449.             [in] BSTR prop // The user name.
  1450.             );
  1451.  
  1452.         /**
  1453.          * Returns the version number of TurboCAD, as a string.
  1454.          */
  1455.         [
  1456.              propget
  1457.             ,helpcontext(0x10000034)
  1458.             ,helpstring("Returns the version number of TurboCAD, as a string.")
  1459.         ]
  1460.         HRESULT  Version(
  1461. #if (_USE_LCID)
  1462.              [in, lcid]    long lcid
  1463. #else
  1464.              [in, optional]    long lcid
  1465. #endif
  1466.             ,[out, retval] BSTR* prop // The version number.
  1467.             );
  1468.  
  1469.         /**
  1470.          * True if the main window is visible.
  1471.          */
  1472.         [
  1473.              propget
  1474.             ,helpcontext(0x10000035)
  1475.             ,helpstring("True if the main window is visible.")
  1476.         ]
  1477.         HRESULT  Visible(
  1478.             [out, retval] IMSI_BOOL* prop // True if the main window is visible.
  1479.             );
  1480.  
  1481.         /**
  1482.          * True if the main window is visible.
  1483.          */
  1484.         [
  1485.              propput
  1486.             ,helpcontext(0x10000035)
  1487.             ,helpstring("True if the main window is visible.")
  1488.         ]
  1489.         HRESULT  Visible(
  1490.             [in] IMSI_BOOL prop // True if the main window is visible.
  1491.             );
  1492.  
  1493.         /**
  1494.          * The distance from the left edge of the application window to the right edge of the application window.
  1495.          */
  1496.         [
  1497.              propget
  1498.             ,hidden, restricted
  1499.             ,helpcontext(0x10000036)
  1500.             ,helpstring("The distance from the left edge of the application window to the right edge of the application window.")
  1501.         ]
  1502.         HRESULT  Width(
  1503.             [out, retval] double* prop // The width of the main window.
  1504.             );
  1505.  
  1506.         /**
  1507.          * The distance from the left edge of the application window to the right edge of the application window.
  1508.          */
  1509.         [
  1510.              propput
  1511.             ,hidden, restricted
  1512.             ,helpcontext(0x10000036)
  1513.             ,helpstring("The distance from the left edge of the application window to the right edge of the application window.")
  1514.         ]
  1515.         HRESULT  Width(
  1516.             [in] double prop // The width of the main window.
  1517.             );
  1518.  
  1519.         /**
  1520.          * Returns the state of the window.
  1521.          */
  1522.         [
  1523.              propget
  1524.             ,hidden, restricted
  1525.             ,helpcontext(0x10000037)
  1526.             ,helpstring("Returns the state of the window.")
  1527.         ]
  1528.         HRESULT  WindowState(
  1529.             [out, retval] ImsiWindowState* prop // The window state.
  1530.             );
  1531.  
  1532.         /**
  1533.          * Sets the state of the window.
  1534.          */
  1535.         [
  1536.              propput
  1537.             ,hidden, restricted
  1538.             ,helpcontext(0x10000037)
  1539.             ,helpstring("Sets the state of the window.")
  1540.         ]
  1541.         HRESULT  WindowState(
  1542.             [in] ImsiWindowState prop // The window state.
  1543.             );
  1544.  
  1545.         /**
  1546.          * Returns the Application object's Windows collection, the collection of Window objects.
  1547.          */
  1548.         [
  1549.              propget
  1550.             ,hidden, restricted
  1551.             ,helpcontext(0x10000038)
  1552.             ,helpstring("Returns the Application object's Windows collection, the collection of Window objects.")
  1553.         ]
  1554.         HRESULT  Windows(
  1555.             [out, retval] Windows** prop // The Windows collection.
  1556.             );
  1557.  
  1558.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  1559.  
  1560.         /**
  1561.          * Compose a key code out of a number of key combinations.
  1562.          */
  1563.         [
  1564.              helpcontext(0x10000039)
  1565.             ,helpstring("Compose a key code out of a number of key combinations.")
  1566.             ,hidden, restricted
  1567.         ]
  1568.         HRESULT  BuildKeyCode(
  1569.             [in] ImsiKey BaseKey, // The base key
  1570.             [in, optional] VARIANT* ModKey, // The key modifier
  1571.             [in, optional] VARIANT* ModKey2, // A second key modifier
  1572.             [in, optional] VARIANT* ModKey3, // A third key modifier
  1573.             [out, retval] long* prop // The calculated key code
  1574.             );
  1575.  
  1576.         /**
  1577.          * Checks the spelling of a single word. Returns True if the word is found in one of the dictionaries, False if it is not.
  1578.          * If CustomDictionary is not supplied, searches all dictionaries.
  1579.          * If IgnoreUppercase is not supplied, spell check will be case sensitive.
  1580.          * <p>
  1581.          * True if the word is found in one of the dictionaries.
  1582.          */
  1583.         [
  1584.              helpcontext(0x1000003A)
  1585.             ,helpstring("Checks the spelling of a single word. Returns True if the word is found in one of the dictionaries, False if it is not.")
  1586.             ,hidden, restricted
  1587.         ]
  1588.         HRESULT     CheckSpelling(
  1589.             [in] BSTR Word, // The word to check.
  1590.             [in, optional] VARIANT* CustomDictionary, // The name of a dictionary.
  1591.             [in, optional] VARIANT* IgnoreUppercase, // True to ignore case.
  1592.       [in, optional] VARIANT* CustomDictionary2, // The name of a dictionary.
  1593.       [in, optional] VARIANT* CustomDictionary3, // The name of a dictionary.
  1594.       [in, optional] VARIANT* CustomDictionary4, // The name of a dictionary.
  1595.       [in, optional] VARIANT* CustomDictionary5, // The name of a dictionary.
  1596.       [in, optional] VARIANT* CustomDictionary6, // The name of a dictionary.
  1597.       [in, optional] VARIANT* CustomDictionary7, // The name of a dictionary.
  1598.       [in, optional] VARIANT* CustomDictionary8, // The name of a dictionary.
  1599.       [in, optional] VARIANT* CustomDictionary9, // The name of a dictionary.
  1600.       [in, optional] VARIANT* CustomDictionary10, // The name of a dictionary.
  1601.             [out, retval] IMSI_BOOL* prop // True if the word was found in any of the dictionaries.
  1602.             );
  1603.  
  1604.         // Displays the standard Open dialog box and gets a filename from the user without actually opening any files.
  1605.         [
  1606.              helpcontext(0x1000003B)
  1607.             ,helpstring("Displays the standard Open dialog box and gets a filename from the user without actually opening any files.")
  1608.         ]
  1609.         HRESULT  GetOpenFilename(
  1610.             [in, optional] VARIANT* Filter, // If supplied, just use one filter.
  1611.             [in, optional] VARIANT* Title, // Title of dialog box.
  1612.             [in, optional] VARIANT* ButtonText, // Text for OK button.
  1613.             [in, optional] VARIANT* MultiSelect, // True to allow multiple selections.
  1614.             [out, retval] BSTR* prop // File name(s).
  1615.             );
  1616.  
  1617.         /**
  1618.          * Displays the standard Save As dialog box and gets a filename from the user without actually saving any files.
  1619.          */
  1620.         [
  1621.              helpcontext(0x1000003C)
  1622.             ,helpstring("Displays the standard Save As dialog box and gets a filename from the user without actually saving any files.")
  1623.         ]
  1624.         HRESULT  GetSaveAsFilename(
  1625.             [in, optional] VARIANT* InitialFilename, // File name to start with.
  1626.             [in, optional] VARIANT* Filter, // If supplied, just use one filter.
  1627.             [in, optional] VARIANT* Title, // Title of dialog box.
  1628.             [in, optional] VARIANT* ButtonText, // Text for OK button.
  1629.             [out, retval] BSTR* prop // File name.
  1630.             );
  1631.  
  1632.         /**
  1633.          * Displays a Help topic.
  1634.          */
  1635.         [
  1636.              helpcontext(0x1000003D)
  1637.             ,helpstring("Displays a Help topic.")
  1638.         ]
  1639.         HRESULT  Help(
  1640.             [in, optional] VARIANT* HelpFile, // The name of a help file.
  1641.             [in, optional] VARIANT* HelpContextID // A help context id.
  1642.             );
  1643.  
  1644.         /**
  1645.          * Displays a dialog box for user input. Returns the information entered in the dialog box.
  1646.          */
  1647.         [
  1648.              helpcontext(0x1000003E)
  1649.             ,helpstring("Displays a dialog box for user input. Returns the information entered in the dialog box.")
  1650.             ,hidden, restricted
  1651.         ]
  1652.         HRESULT  InputBox(
  1653.             [in] VARIANT* bstrPrompt,
  1654.             [in, optional] VARIANT* bstrTitle,
  1655.             [in, optional] VARIANT* Default,
  1656.             [in, optional] VARIANT* sLeft,
  1657.             [in, optional] VARIANT* sTop,
  1658.             [in, optional] VARIANT* bstrHelpFile,
  1659.             [in, optional] VARIANT* ulHelpContextID,
  1660.             [in, optional] VARIANT* sType,
  1661.             [out, retval] VARIANT* prop
  1662.             );
  1663.  
  1664.         /**
  1665.          * Return key codes as a string.
  1666.          */
  1667.         [
  1668.              helpcontext(0x1000003F)
  1669.             ,helpstring("Return key codes as a string.")
  1670.             ,hidden, restricted
  1671.         ]
  1672.         HRESULT  KeyString(
  1673.             [in] long KeyCode, // The key code
  1674.             [in, optional] VARIANT* KeyCode2, // A second key code
  1675.             [out, retval] BSTR* prop // The returned string
  1676.             );
  1677.  
  1678.         /**
  1679.          * Restores the properties of the Graphic object that will be used as a template for all Graphics.Add calls.
  1680.          * Invoke this method to balance a previous call to PushGraphicDefaults.
  1681.          */
  1682.         [
  1683.              helpcontext(0x10000040)
  1684.             ,helpstring("Restores the properties of the Graphic object that will be used as a template for all Graphics.Add calls.")
  1685.         ]
  1686.         HRESULT  PopGraphicDefaults(
  1687.             [in, optional] VARIANT* PrevDefaults // The previous default level to restore to.
  1688.         );
  1689.  
  1690.         /**
  1691.          * Restores the properties of the Vertex object that will be used as a template for all Vertices.Add calls.
  1692.          * Invoke this method to balance a previous call to PushVertexDefaults.
  1693.          */
  1694.         [
  1695.              helpcontext(0x10000041)
  1696.             ,helpstring("Restores the properties of the Vertex object that will be used as a template for all Vertices.Add calls.")
  1697.         ]
  1698.         HRESULT  PopVertexDefaults(
  1699.             [in, optional] VARIANT* PrevDefaults // The previous default level to restore to.
  1700.         );
  1701.  
  1702.         /**
  1703.          * Sets the properties of the Graphic object that will be used as a template for all Graphics.Add calls.
  1704.          * Modifies the existing template according to the optional parameters passed.
  1705.          * Restore the existing template by invoking PopGraphicDefaults.
  1706.          */
  1707.         [
  1708.              helpcontext(0x10000042)
  1709.             ,helpstring("Sets the properties of the Graphic object that will be used as a template for all Graphics.Add calls.")
  1710.         ]
  1711.         HRESULT  PushGraphicDefaults(
  1712.             [in, optional] VARIANT* Editable, // True if the Graphic object can be moved or deleted.
  1713.             [in, optional] VARIANT* Visible, // True if the Graphic object is visible.
  1714.             [in, optional] VARIANT* Cosmetic, // True if the Graphic object is not part of the main graphic.
  1715.             [in, optional] VARIANT* Unbounded, // True if the Graphic object is unbounded.
  1716.             [out, retval] long* DefaultLevel // The new default level.
  1717.             );
  1718.  
  1719.         /**
  1720.          * Sets the properties of the Vertex object that will be used as a template for all Vertices.Add calls.
  1721.          * Modifies the existing template according to the optional parameters passed.
  1722.          * Restore the existing template by invoking PopVertexDefaults.
  1723.          */
  1724.         [
  1725.              helpcontext(0x10000043)
  1726.             ,helpstring("Sets the properties of the Vertex object that will be used as a template for all Vertices.Add calls.")
  1727.         ]
  1728.         HRESULT  PushVertexDefaults(
  1729.             [in, optional] VARIANT* PenDown, // True if the Vertex object should draw.
  1730.             [in, optional] VARIANT* Selectable, // True if the Vertex object can be selected.
  1731.             [in, optional] VARIANT* Snappable, // True if the Vertex object can be snapped to.
  1732.             [in, optional] VARIANT* Editable, // True if the Vertex object can be moved or deleted.
  1733.             [in, optional] VARIANT* Linkable, // True if the Vertex object can be linked to.
  1734.             [in, optional] VARIANT* Calculated, // True if the Vertex object is recalculated by the RegenMethod.
  1735.             [out, retval] long* DefaultLevel // The new default level.
  1736.             );
  1737.  
  1738.         /**
  1739.          * Quits the application.
  1740.          * Does not run any OnClose macros before exiting.
  1741.          *
  1742.          * @see TCADAPI TCWAppExit function
  1743.          */
  1744.         [
  1745.              helpcontext(0x10000044)
  1746.             ,helpstring("Quits the application.")
  1747.         ]
  1748.         HRESULT  Quit(
  1749.         );
  1750.  
  1751.         /**
  1752.          * Redoes the last user interface action.
  1753.          */
  1754.         [
  1755.              helpcontext(0x10000045)
  1756.             ,helpstring("Redoes the last user interface action.")
  1757.         ]
  1758.         HRESULT  Redo(
  1759.             [in, optional] VARIANT* Times, // Number of actions to redo.
  1760.             [out, retval] IMSI_BOOL* prop // True if the redo was successful.
  1761.         );
  1762.  
  1763.         /**
  1764.          * Repeats the last user interface action.
  1765.          */
  1766.         [
  1767.              helpcontext(0x10000046)
  1768.             ,helpstring("Repeats the last user interface action.")
  1769.             ,hidden, restricted
  1770.         ]
  1771.         HRESULT  Repeat(
  1772.             [in] VARIANT* Times, // Number of actions to repeat.
  1773.             [out, retval] IMSI_BOOL* prop // True if the repeat was successful.
  1774.         );
  1775.  
  1776.         /**
  1777.          * NOTE: It's a big no-no to specify "[out, retval] VARIANT* prop"
  1778.          * in VB 5.0's browser...
  1779.          * <p>
  1780.          * Run a macro (with optional arguments).
  1781.          */
  1782.         [
  1783.              helpcontext(0x10000047)
  1784.             ,helpstring("Run a macro (with optional arguments).")
  1785.             ,hidden, restricted
  1786.         ]
  1787.         HRESULT  RunMacro(
  1788.             [in, optional] VARIANT* Macro, // The name of the macro.
  1789.             [in, optional] VARIANT* Arg1, // An argument to pass to the macro.
  1790.             [in, optional] VARIANT* Arg2, // An argument to pass to the macro.
  1791.             [in, optional] VARIANT* Arg3, // An argument to pass to the macro.
  1792.             [in, optional] VARIANT* Arg4, // An argument to pass to the macro.
  1793.             [in, optional] VARIANT* Arg5, // An argument to pass to the macro.
  1794.             [in, optional] VARIANT* Arg6, // An argument to pass to the macro.
  1795.             [in, optional] VARIANT* Arg7, // An argument to pass to the macro.
  1796.             [in, optional] VARIANT* Arg8, // An argument to pass to the macro.
  1797.             [in, optional] VARIANT* Arg9, // An argument to pass to the macro.
  1798.             [in, optional] VARIANT* Arg10, // An argument to pass to the macro.
  1799.             [in, optional] VARIANT* Arg11, // An argument to pass to the macro.
  1800.             [in, optional] VARIANT* Arg12, // An argument to pass to the macro.
  1801.             [in, optional] VARIANT* Arg13, // An argument to pass to the macro.
  1802.             [in, optional] VARIANT* Arg14, // An argument to pass to the macro.
  1803.             [in, optional] VARIANT* Arg15, // An argument to pass to the macro.
  1804.             [in, optional] VARIANT* Arg16, // An argument to pass to the macro.
  1805.             [out, retval] VARIANT* prop // The value returned by the macro.
  1806.             );
  1807.  
  1808.         /**
  1809.          * Saves the current workspace.
  1810.          */
  1811.         [
  1812.              helpcontext(0x10000048)
  1813.             ,helpstring("Saves the current workspace.")
  1814.             ,hidden, restricted
  1815.         ]
  1816.         HRESULT  SaveWorkspace(
  1817.             [in, optional] VARIANT* bstrFilename // Name for workspace file.
  1818.             );
  1819.  
  1820.         /**
  1821.          * Cancels the last user interface action.
  1822.          */
  1823.         [
  1824.              helpcontext(0x10000049)
  1825.             ,helpstring("Cancels the last user interface action.")
  1826.         ]
  1827.         HRESULT  Undo(
  1828.             [in, optional] VARIANT* Times, // Number of actions to undo.
  1829.             [out, retval] IMSI_BOOL* prop // True if the Undo was successful.
  1830.         );
  1831.  
  1832.         /**
  1833.          * Returns a Graphic object associated with the internal handle.
  1834.          * Private.
  1835.          */
  1836.         [
  1837.              restricted
  1838.             ,helpcontext(0x1000004A)
  1839.             ,helpstring("Private.  Returns a Graphic object associated with the internal handle.")
  1840.         ]
  1841.         HRESULT  _GDispatch(
  1842.             [in] long hGraphic,
  1843.             [in] IUnknown* pIUnkOuter,
  1844.             [out] IGraphic** ppIGraphic,
  1845.             [out] Graphics** ppGraphics
  1846.             );
  1847.  
  1848.         /**
  1849.          * Returns a Tool object associated with the internal handle.
  1850.          * Private.
  1851.          */
  1852.         [
  1853.              restricted
  1854.             ,helpcontext(0x1000004B)
  1855.             ,helpstring("Private.  Returns a Tool object associated with the internal handle.")
  1856.         ]
  1857.         HRESULT  _TDispatch(
  1858.             [in] long nFamilyIndex,
  1859.             [in] long nToolIndex,
  1860.             [out] Tool** ppTool
  1861.             );
  1862.  
  1863.         /**
  1864.          * Returns a View object associated with the internal handle.
  1865.          * Private.
  1866.          * <p>
  1867.          */
  1868.         [
  1869.              restricted
  1870.             ,helpcontext(0x1000004C)
  1871.             ,helpstring("Private.  Returns a View object associated with the internal handle.")
  1872.         ]
  1873.         HRESULT  _VDispatch(
  1874.             [in] long hViewport,
  1875.             [out] View** ppView,
  1876.             [out] IDrawing** ppIDrawing
  1877.             );
  1878.  
  1879.         /**
  1880.          * Connects an ApplicationEvents object sink to TurboCAD.
  1881.          * Set the mask parameter to only receive a subset of the full event set.
  1882.          */
  1883.         [
  1884.              helpcontext(0x1000004D)
  1885.             ,helpstring("Connects an ApplicationEvents object sink to TurboCAD.")
  1886.         ]
  1887.         HRESULT  ConnectEvents(
  1888.             [in] IDispatch* EventSink, // Object that will receive events.
  1889.             [in, optional] VARIANT* EventMask, // Mask bits or'ed together (see ImsiEventMask).
  1890.             [out, retval] long* ConnectionID // ID to be used in DisconnectEvents method.
  1891.             );
  1892.  
  1893.         /**
  1894.          * Disconnects an ApplicationEvents object sink.
  1895.          */
  1896.         [
  1897.              helpcontext(0x1000004E)
  1898.             ,helpstring("Disconnects an ApplicationEvents object sink.")
  1899.         ]
  1900.         HRESULT  DisconnectEvents(
  1901.             [in] long ConnectionID // ID returned by ConnectEvents method.
  1902.             );
  1903.  
  1904.         /**
  1905.          * Interpret Expression string using TurboLISP. Returns the result as a String
  1906.          */
  1907.         [
  1908.              helpcontext(0x1000004F)
  1909.             ,helpstring("Interpret Expression string using TurboLISP. Returns the result as a String.")
  1910.         ]
  1911.         HRESULT  RunTurboLISP(
  1912.             [in] BSTR* Expression,        // the LISP expression as a string
  1913.             [out, retval] BSTR* Result    // the result as a string
  1914.             );
  1915.  
  1916.         /**
  1917.          * Returns the Application object's TieMethods collection.
  1918.          */
  1919.         [
  1920.              propget
  1921.             ,helpcontext(0x10000050)
  1922.             ,helpstring("Returns the Application object's TieMethods collection.")
  1923.         ]
  1924.         HRESULT  TieMethods(
  1925.             [out, retval] IDispatch** prop // The TieMethods collection.
  1926.             );
  1927.  
  1928.         /**
  1929.          * Returns the Application object's Renders collection.
  1930.          */
  1931.         [
  1932.              propget
  1933.             ,helpcontext(0x10000051)
  1934.             ,helpstring("Returns the Application object's Renders collection.")
  1935.         ]
  1936.         HRESULT  Renders(
  1937.             [out, retval] IDispatch** prop // The Renders collection.
  1938.             );
  1939.          
  1940.         /**
  1941.          * Returns the Application object's ToolEvents interface.
  1942.          */
  1943.         [
  1944.              propget
  1945.             ,helpcontext(0x10000052)
  1946.             ,helpstring("Returns the Application object's ToolEvents interface.")
  1947.         ]
  1948.         HRESULT  ToolEvents(
  1949.             [out, retval] IDispatch** prop // The ToolEvents interface
  1950.             );
  1951.  
  1952.         /**
  1953.          * Returns the Application object's Materials collection.
  1954.          */
  1955.         [
  1956.              propget
  1957.             ,helpcontext(0x12345678)
  1958.             ,helpstring("Returns the Application object's Materials collection.")
  1959.         ]
  1960.         HRESULT  Materials(
  1961.             [out, retval] IDispatch** prop // The ToolEvents interface
  1962.             );
  1963.  
  1964.         /**
  1965.          * Returns the Application object's Environments collection.
  1966.          */
  1967.         [
  1968.              propget
  1969.             ,helpcontext(0x12345678)
  1970.             ,helpstring("Returns the Application object's Environments collection.")
  1971.         ]
  1972.         HRESULT  Environments(
  1973.             [out, retval] IDispatch** prop // The ToolEvents interface
  1974.             );
  1975.  
  1976.         /**
  1977.          * Returns the Application object's Luminances collection.
  1978.          */
  1979.         [
  1980.              propget
  1981.             ,helpcontext(0x12345678)
  1982.             ,helpstring("Returns the Application object's Luminances collection.")
  1983.         ]
  1984.         HRESULT  Luminances(
  1985.             [out, retval] IDispatch** prop // The ToolEvents interface
  1986.             );
  1987.     
  1988.         /**
  1989.          * Returns the Application object's Extension object.
  1990.          */
  1991.         [
  1992.              helpcontext(0x12345678)
  1993.             ,helpstring("Returns the Application object's Extension object.")
  1994.         ]
  1995.         HRESULT  CreateObject(
  1996.              [in            ] BSTR bstrProgID
  1997.             ,[out, retval    ] IDispatch** prop
  1998.             );
  1999.     
  2000.  
  2001.         /**
  2002.          * Retrieves the string from the specified section in an initialisation file.
  2003.          */
  2004.         [
  2005.              helpcontext(0x12345678)
  2006.             ,helpstring("Retrieves a string from the specified section in an initialisation file.")
  2007.         ]
  2008.         HRESULT  GetProfileString(
  2009.              [in            ] BSTR     bstrSection
  2010.             ,[in            ] BSTR     bstrName
  2011.             ,[in            ] BSTR     bstrDefVal
  2012.             ,[out, retval    ] BSTR*     prop
  2013.             );
  2014.  
  2015.         /**
  2016.          * Returns the string from the specified section in an initialisation file.
  2017.          */
  2018.         [
  2019.              helpcontext(0x12345678)
  2020.             ,helpstring("Copies a string into the specified section in an initialisation file.")
  2021.         ]
  2022.         HRESULT  PutProfileString(
  2023.              [in            ] BSTR     bstrSection
  2024.             ,[in            ] BSTR     bstrName
  2025.             ,[in            ] BSTR     prop
  2026.             );
  2027.   
  2028.         /**
  2029.          * Retrieves an integer associated with key in the specified section of an initialisation file.
  2030.          */
  2031.         [
  2032.              helpcontext(0x12345678)
  2033.             ,helpstring("Retrieves an integer associated with key in the specified section of an initialisation file.")
  2034.         ]
  2035.         HRESULT  GetProfileInt(
  2036.              [in            ] BSTR     bstrSection
  2037.             ,[in            ] BSTR     bstrName
  2038.             ,[in            ] int     nDefVal
  2039.             ,[out, retval    ] int*     prop
  2040.             );
  2041.  
  2042.         /**
  2043.          * Returns the string from the spcified section in an initialisation file.
  2044.          */
  2045.         [
  2046.              helpcontext(0x12345678)
  2047.             ,helpstring("Copies an integer associated with key into the specified section of an initialisation file.")
  2048.         ]
  2049.         HRESULT  PutProfileInt(
  2050.              [in            ] BSTR     bstrSection
  2051.             ,[in            ] BSTR     bstrName
  2052.             ,[in            ] int     prop
  2053.             );
  2054.         /**
  2055.          * Retrieves process ID.
  2056.          */
  2057.         [
  2058.              helpcontext(0x12345678)
  2059.             ,helpstring("Retrieves process ID.")
  2060.         ]
  2061.         HRESULT GetProcessId(
  2062.             [out, retval    ] long*     pPropcId
  2063.             );
  2064.     };
  2065.  
  2066.     /**
  2067.      * A TurboCAD drawing (document).
  2068.      * Allows access to the document's properties.
  2069.      * Allows access to the graphics contained within the document.
  2070.      */
  2071.     [
  2072.          object
  2073.         ,uuid(6A481107-E531-11CF-A115-00A024158DAF)
  2074.         ,oleautomation
  2075.         ,dual
  2076.         ,helpcontext(0x10010000)
  2077.         ,helpstring("A TurboCAD drawing.")
  2078.     ]
  2079.     interface IDrawing : IDispatch
  2080.     {
  2081.  
  2082.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  2083.  
  2084.         /**
  2085.          * Returns the active Window object.
  2086.          *
  2087.          * @see TCADAPI TCWActiveWindow function
  2088.          */
  2089.         [
  2090.              propget
  2091.             ,hidden, restricted
  2092.             ,helpcontext(0x10010001)
  2093.             ,helpstring("Returns the active Window object.")
  2094.         ]
  2095.         HRESULT  ActiveWindow(
  2096.             [out, retval] Window** prop // The active Window object.
  2097.             );
  2098.  
  2099.         /**
  2100.          * Returns an Application object that represents the owner of the specified object.
  2101.          */
  2102.         [
  2103.              propget
  2104.             ,helpcontext(0x10010002)
  2105.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  2106.         ]
  2107.         HRESULT  Application(
  2108.             [out, retval] IApplication** prop // The Application object.
  2109.             );
  2110.  
  2111.         /**
  2112.          * Returns the Drawing object's Blocks collection.
  2113.          */
  2114.         [
  2115.              propget
  2116.             ,helpcontext(0x10010003)
  2117.             ,helpstring("Returns the Drawing object's Blocks collection.")
  2118.         ]
  2119.         HRESULT  Blocks(
  2120.             [out, retval] Blocks** prop // The Blocks collection.
  2121.             );
  2122.  
  2123.         /**
  2124.          * Returns the Drawing object's BrushStyles collection.
  2125.          */
  2126.         [
  2127.              propget
  2128.             ,helpcontext(0x10010004)
  2129.             ,helpstring("Returns the Drawing object's BrushStyles collection.")
  2130.         ]
  2131.         HRESULT  BrushStyles(
  2132.             [out, retval] BrushStyles** prop // The BrushStyles collection.
  2133.             );
  2134.  
  2135.         /**
  2136.          * Returns a DocumentProperties collection that represents all the built-in document properties for the specfied drawing.
  2137.          */
  2138.         [
  2139.              propget
  2140.             ,hidden, restricted
  2141.             ,helpcontext(0x10010005)
  2142.             ,helpstring("Returns a DocumentProperties collection that represents all the built-in document properties for the specfied drawing.")
  2143.         ]
  2144.         HRESULT  BuiltinDocumentProperties(
  2145.             [out, retval] IDispatch** prop // The DocumentProperties collection
  2146.             );
  2147.  
  2148.         /**
  2149.          * Returns a DocumentProperties collection that represents all the custom document properties for the specfied drawing.
  2150.          */
  2151.         [
  2152.              propget
  2153.             ,hidden, restricted
  2154.             ,helpcontext(0x10010006)
  2155.             ,helpstring("Returns a DocumentProperties collection that represents all the custom document properties for the specfied drawing.")
  2156.         ]
  2157.         HRESULT  CustomDocumentProperties(
  2158.             [out, retval] IDispatch** prop // The DocumentProperties collection.
  2159.             );
  2160.  
  2161.         /**
  2162.          * True if the Drawing object is embedded.
  2163.          */
  2164.         [
  2165.              propget
  2166.             ,hidden, restricted
  2167.             ,helpcontext(0x10010007)
  2168.             ,helpstring("True if Drawing object is embedded.")
  2169.         ]
  2170.         HRESULT  Embedded(
  2171.             [out, retval] IMSI_BOOL* prop // True if the Drawing object is embedded.
  2172.             );
  2173.  
  2174.         /**
  2175.          * Returns the name of the Drawing object, including its path on disk, as a string.
  2176.          */
  2177.         [
  2178.              propget
  2179.             ,helpcontext(0x10010008)
  2180.             ,helpstring("Returns the name of the Drawing object, including its path on disk, as a string.")
  2181.             ,hidden, restricted
  2182.         ]
  2183.         HRESULT  FullName(
  2184.             [out, retval] BSTR* prop // The full path name.
  2185.             );
  2186.  
  2187.         /**
  2188.          * Returns the Drawing object's Graphics collection.
  2189.          */
  2190.         [
  2191.              propget
  2192.             ,helpcontext(0x10010009)
  2193.             ,helpstring("Returns the Drawing object's Graphics collection.")
  2194.         ]
  2195.         HRESULT  Graphics(
  2196.             [out, retval] Graphics** prop // The Graphics collection.
  2197.             );
  2198.  
  2199.         /**
  2200.          * Returns the Drawing object's GraphicSets collection.
  2201.          */
  2202.         [
  2203.              propget
  2204.             ,helpcontext(0x1001000A)
  2205.             ,helpstring("Returns the Drawing object's GraphicSets collection.")
  2206.         ]
  2207.         HRESULT  GraphicSets(
  2208.             [out, retval] GraphicSets** prop // The GraphicSets collection.
  2209.             );
  2210.  
  2211.         /**
  2212.          * Returns the Drawing object's Grid object.
  2213.          */
  2214.         [
  2215.              propget
  2216.             ,restricted, hidden
  2217.             ,helpcontext(0x1001000B)
  2218.             ,helpstring("Returns the Drawing object's Grid object.")
  2219.         ]
  2220.         HRESULT  Grid(
  2221.             [out, retval] IGrid** prop // The Grid object.
  2222.             );
  2223.  
  2224.         /**
  2225.          * Sets the Drawing object's Grid object.
  2226.          */
  2227.         [
  2228.              propput
  2229.             ,restricted, hidden
  2230.             ,helpcontext(0x1001000B)
  2231.             ,helpstring("Sets the Drawing object's Grid object.")
  2232.         ]
  2233.         HRESULT  Grid(
  2234.             [in] IGrid* prop // The Grid object.
  2235.             );
  2236.  
  2237.         /**
  2238.          * Returns the index of the item in the collection.
  2239.          */
  2240.         [
  2241.              propget
  2242.             ,helpcontext(0x1001000C)
  2243.             ,helpstring("Returns the index of the item in the collection.")
  2244.         ]
  2245.         HRESULT  Index(
  2246.             [out, retval] long* prop // The index.
  2247.             );
  2248.  
  2249.         /**
  2250.          * Returns the Drawing object's Layers collection.
  2251.          */
  2252.         [
  2253.              propget
  2254.             ,helpcontext(0x1001000D)
  2255.             ,helpstring("Returns the Drawing object's Layers collection.")
  2256.         ]
  2257.         HRESULT  Layers(
  2258.             [out, retval] Layers** prop // The Layers collection.
  2259.             );
  2260.  
  2261.         /**
  2262.          * Returns the Drawing object's LineStyles collection.
  2263.          */
  2264.         [
  2265.              propget
  2266.             ,helpcontext(0x1001000E)
  2267.             ,helpstring("Returns the Drawing object's LineStyles collection.")
  2268.         ]
  2269.         HRESULT  LineStyles(
  2270.             [out, retval] LineStyles** prop // The LineStyles collection.
  2271.             );
  2272.  
  2273.         /**
  2274.          * Returns the name of the object, as a string.
  2275.          * Name is the default property of the Drawing object.
  2276.          *
  2277.          * @see TCADAPI TCWDrawingName function
  2278.          */
  2279.         [
  2280.              propget
  2281.             ,id(DISPID_VALUE)
  2282.             ,helpcontext(0x1001000F)
  2283.             ,helpstring("Returns the name of the object. as a string.")
  2284.         ]
  2285.         HRESULT  Name(
  2286.             [out, retval] BSTR* prop // The name of the object.
  2287.             );
  2288.         /**
  2289.          * Returns the Drawing object's NamedViews collection.
  2290.          */
  2291.         [
  2292.              propget
  2293.             ,helpcontext(0x10010010)
  2294.             ,helpstring("Returns the Drawing object's NamedViews collection.")
  2295.         ]
  2296.         HRESULT  NamedViews(
  2297.             [out, retval] NamedViews** prop // The NamedViews collection.
  2298.             );
  2299.  
  2300.         /**
  2301.          * Returns the Drawing object's DrawingOptions object.
  2302.          */
  2303.         [
  2304.              propget
  2305.             ,restricted, hidden
  2306.             ,helpcontext(0x10010011)
  2307.             ,helpstring("Returns the Drawing object's DrawingOptions object.")
  2308.         ]
  2309.         HRESULT  Options(
  2310.             [out, retval] DrawingOptions** prop // The DrawingOptions object.
  2311.             );
  2312.  
  2313.         /**
  2314.          * Returns the Drawing object's PgSetObj.
  2315.          */
  2316.         [
  2317.              propget
  2318.             ,helpcontext(0x10010012)
  2319.             ,helpstring("Returns the Drawing object's PgSetObj.")
  2320.         ]
  2321.         HRESULT  PageSetup(
  2322.             [out, retval] PageSetup** prop // The PgSetObj.
  2323.             );
  2324.  
  2325.         /**
  2326.          * Returns the parent object for the specified object.
  2327.          * The parent of the Drawing object is the Application object.
  2328.          */
  2329.         [
  2330.              propget
  2331.             ,helpcontext(0x10010013)
  2332.             ,helpstring("Returns the parent object for the specified object.")
  2333.         ]
  2334.         HRESULT  Parent(
  2335.             [out, retval] IApplication** prop // The parent object.
  2336.             );
  2337.  
  2338.         /**
  2339.          * Returns the complete path of the object, as a string, without including the final separator and name of the object.
  2340.          */
  2341.         [
  2342.              propget
  2343.             ,helpcontext(0x10010014)
  2344.             ,helpstring("Returns the complete path of the object, as a string, without including the final separator and name of the object.")
  2345.         ]
  2346.         HRESULT  Path(
  2347. #if (_USE_LCID)
  2348.              [in, lcid]    long lcid
  2349. #else
  2350.              [in, optional]    long lcid
  2351. #endif
  2352.             ,[out, retval] BSTR* prop // The path.
  2353.             );
  2354.  
  2355.         /**
  2356.          * Returns the Drawing object's Properties collection.
  2357.          * For the complete list of available Drawing Properties, follow
  2358.          * <A HREF="dwgprops.html">this link</A>.
  2359.          *
  2360.          * @see TCADAPI TCWDrawingPropertyGet/Set functions
  2361.          */
  2362.         [
  2363.              propget
  2364.             ,helpcontext(0x10010015)
  2365.             ,helpstring("Returns the Drawing object's Properties collection.")
  2366.         ]
  2367.         HRESULT  Properties(
  2368.             [out, retval] Properties** prop // The Properties collection.
  2369.             );
  2370.  
  2371.         /**
  2372.          * True if the Drawing object has been opened as read-only.
  2373.          */
  2374.         [
  2375.              propget
  2376.             ,restricted, hidden
  2377.             ,helpcontext(0x10010016)
  2378.             ,helpstring("True if the Drawing object has been opened as read-only.")
  2379.         ]
  2380.         HRESULT  ReadOnly(
  2381.             [out, retval] IMSI_BOOL* prop // True if the Drawing object has been opened as read-only.
  2382.             );
  2383.  
  2384.         /**
  2385.          * True if no changes have been made to the Drawing object since it was last saved.
  2386.          */
  2387.         [
  2388.              propget
  2389.             ,helpcontext(0x10010017)
  2390.             ,helpstring("True if no have been made to the Drawing object since it was last saved.")
  2391.         ]
  2392.         HRESULT  Saved(
  2393.             [out, retval] IMSI_BOOL* prop // True if all changes have been saved.
  2394.             );
  2395.  
  2396.         /**
  2397.          * True if no changes have been made to the Drawing object since it was last saved.
  2398.          */
  2399.         [
  2400.              propput
  2401.             ,helpcontext(0x10010017)
  2402.             ,helpstring("True if no have been made to the Drawing object since it was last saved.")
  2403.         ]
  2404.         HRESULT  Saved(
  2405.             [in] IMSI_BOOL prop // True if all changes have been saved.
  2406.             );
  2407.  
  2408.         /**
  2409.          * Returns the Drawing object's Selection object.
  2410.          */
  2411.         [
  2412.              propget
  2413.             ,helpcontext(0x10010018)
  2414.             ,helpstring("Returns the Drawing object's Selection object.")
  2415.         ]
  2416.         HRESULT  Selection(
  2417.             [out, retval] Selection** prop // The Selection object.
  2418.             );
  2419.  
  2420.         /**
  2421.          * Returns the Drawing object's Styles collection.
  2422.          */
  2423.         [
  2424.              propget
  2425.             ,helpcontext(0x10010019)
  2426.             ,helpstring("Returns the Drawing object's Styles collection.")
  2427.         ]
  2428.         HRESULT  Styles(
  2429.             [out, retval] Styles** prop // The Styles collection.
  2430.             );
  2431.  
  2432.         /**
  2433.          * Returns the object's Tables collection.
  2434.          */
  2435.         [
  2436.              propget
  2437.             ,restricted, hidden
  2438.             ,helpcontext(0x1001001A)
  2439.             ,helpstring("Returns the object's Tables collection.")
  2440.         ]
  2441.         HRESULT  Tables(
  2442.             [out, retval] Tables** prop // The Tables collection.
  2443.             );
  2444.  
  2445.         /**
  2446.          * Returns the type of Drawing object.
  2447.          */
  2448.         [
  2449.              propget
  2450.             ,restricted, hidden
  2451.             ,helpcontext(0x1001001B)
  2452.             ,helpstring("Returns the type of Drawing object.")
  2453.         ]
  2454.         HRESULT  Type(
  2455.             [out, retval] ImsiDrawingType* prop // The type of Drawing object.
  2456.             );
  2457.  
  2458.         /**
  2459.          * True if the user interface is active.
  2460.          */
  2461.         [
  2462.              propget
  2463.             ,restricted, hidden
  2464.             ,helpcontext(0x1001001C)
  2465.             ,helpstring("True if the user interface is active.")
  2466.         ]
  2467.         HRESULT  UserControl(
  2468.             [out, retval] IMSI_BOOL* prop // True if the user interface is active.
  2469.             );
  2470.  
  2471.         /**
  2472.          * Returns the Drawing object's Views collection.
  2473.          */
  2474.         [
  2475.              propget
  2476.             ,helpcontext(0x1001001D)
  2477.             ,helpstring("Returns the Drawing object's Views collection.")
  2478.         ]
  2479.         HRESULT  Views(
  2480.             [out, retval] Views** prop // The Views collection.
  2481.             );
  2482.  
  2483.         /**
  2484.          * Returns the Drawing object's Windows collection.
  2485.          */
  2486.         [
  2487.              propget
  2488.             ,restricted, hidden
  2489.             ,helpcontext(0x1001001E)
  2490.             ,helpstring("Returns the Drawing object's Windows collection.")
  2491.         ]
  2492.         HRESULT  Windows(
  2493.             [out, retval] Windows** prop // The Windows collection.
  2494.             );
  2495.  
  2496.         /**
  2497.          * Returns the internal handle associated with the Drawing object.
  2498.          * Private.
  2499.          */
  2500.         [
  2501.              propget
  2502.             ,restricted
  2503.             ,helpcontext(0x1001001F)
  2504.             ,helpstring("Private.  Returns the internal handle associated with the Drawing object.")
  2505.         ]
  2506.         HRESULT  _Handle(
  2507.             [out, retval] long* prop // The internal handle.
  2508.             );
  2509.  
  2510.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  2511.  
  2512.         /**
  2513.          * Makes this object the active Drawing object.
  2514.          *
  2515.          * @see TCADAPI TCWDrawingActivate function
  2516.          */
  2517.         [
  2518.              helpcontext(0x10010020)
  2519.             ,helpstring("Makes this object the active Drawing object.")
  2520.             /*,hidden, restricted*/
  2521.         ]
  2522.         HRESULT  Activate(
  2523.             );
  2524.  
  2525.         /**
  2526.          * Opens a new URecObj in the Drawing object.
  2527.          * Use UndoRecord.AddGraphic, etc. to add graphics to the record.
  2528.          * Use UndoRecord.Close to close the record and add it to the Undo list.
  2529.          *
  2530.          * @see TCADAPI TCWUndoRecordStart function
  2531.          */
  2532.         [
  2533.              helpcontext(0x10010021)
  2534.             ,helpstring("Opens a new URecObj in the Drawing object.")
  2535.         ]
  2536.         HRESULT  AddUndoRecord(
  2537.             [in, optional] BSTR MenuText, // The prompt to appear in the Undo list.
  2538.             [out, retval] UndoRecord** prop // The new URecObj.
  2539.             );
  2540.  
  2541.         /**
  2542.          * Closes the Drawing object.
  2543.          *
  2544.          * @see TCADAPI TCWDrawingClose function.
  2545.          */
  2546.         [
  2547.              helpcontext(0x10010022)
  2548.             ,helpstring("Closes the Drawing object.")
  2549.         ]
  2550.         HRESULT  Close(
  2551.             [in, optional] VARIANT* SaveChanges, // True to save changes.
  2552.             [in, optional] VARIANT* FileName, // Alternate file name to save as.
  2553.             [in, optional] VARIANT* Filter // Name or index of preferred filter.
  2554.             );
  2555.  
  2556.         /**
  2557.          * Adds the contents of a file to the Drawing object.
  2558.          */
  2559.         [
  2560.              helpcontext(0x10010023)
  2561.             ,helpstring("Adds the contents of a file to the Drawing object.")
  2562.             //,restricted, hidden
  2563.         ]
  2564.         HRESULT  InsertFile(
  2565.         BSTR FileName//, // The name of the file.
  2566.         ,[in, optional] VARIANT* pReserved  // Reserved
  2567.         );
  2568.  
  2569.         /**
  2570.          * Creates a new Window object for the Drawing object.
  2571.          */
  2572.         [
  2573.              helpcontext(0x10010024)
  2574.             ,helpstring("Creates a new Window object for the Drawing object.")
  2575.             ,restricted, hidden
  2576.         ]
  2577.         HRESULT  NewWindow(
  2578.             [out, retval] Window** prop // The new Window object.
  2579.             );
  2580.  
  2581.         /**
  2582.          * Pastes the contents of the Clipboard onto the Drawing object.
  2583.          */
  2584.         [
  2585.              helpcontext(0x10010025)
  2586.             ,helpstring("Pastes the contents of the Clipboard onto the Drawing object.")
  2587.             ,restricted, hidden
  2588.         ]
  2589.         HRESULT  Paste(
  2590.             );
  2591.  
  2592.         /**
  2593.          * Pastes the contents of the Clipboard onto the Drawing object.
  2594.          */
  2595.         [
  2596.              helpcontext(0x10010026)
  2597.             ,helpstring("Pastes the contents of the Clipboard onto the Drawing object.")
  2598.             ,restricted, hidden
  2599.         ]
  2600.         HRESULT  PasteSpecial(
  2601.             [in, optional] VARIANT* DataType, // Name of data format to paste.
  2602.             [in, optional] VARIANT* Link, // True to paste link.
  2603.             [in, optional] VARIANT* DisplayAsIcon, // True to display as icon.
  2604.             [in, optional] VARIANT* IconFileName, // File containing icon.
  2605.             [in, optional] VARIANT* IconIndex, // Index of icon to use if displaying as icon.
  2606.             [in, optional] VARIANT* IconLabel, // Label to display if displaying as icon.
  2607.             [in, optional] VARIANT* XRef, // X coordinate of center of object
  2608.             [in, optional] VARIANT* YRef, // Y coordinate of center of object
  2609.             [in, optional] VARIANT* ZRef, // Z coordinate of center of object
  2610.             [in, optional] VARIANT* Width, // Width of object
  2611.             [in, optional] VARIANT* Height, // Height of object
  2612.             [in, optional] VARIANT* Anchor
  2613.             );
  2614.  
  2615.         /**
  2616.          * Begins an interactive pick by rectangle.
  2617.          */
  2618.         [
  2619.              helpcontext(0x10010027)
  2620.             ,helpstring("Begins an interactive pick by rectangle.")
  2621.         ]
  2622.         HRESULT     PickInteractive(
  2623.             [in] ImsiPickType Type, // Point, rect or polygon pick.
  2624.             [in, optional] VARIANT* TopLevel, // True if only top level Graphic object's are to be picked.
  2625.             [in, optional] VARIANT* Arcs, // True if arcs should be returned in pick.
  2626.             [in, optional] VARIANT* Text, // True if text should be returned in pick.
  2627.             [in, optional] VARIANT* Segments, // True if only segments should be returned in pick.
  2628.             [in, optional] VARIANT* Blocks, // True if segments in blocks should be returned in pick.
  2629.             [in, optional] VARIANT* Invisible, // True if invisible segements can be picked.
  2630.             [out, retval] PickResult** prop // The result of the pick
  2631.             );
  2632.  
  2633.         /**
  2634.          * Prints the object.
  2635.          *
  2636.          * @see TCADAPI TCWDrawingPrint function.
  2637.          */
  2638.         [
  2639.              helpcontext(0x10010028)
  2640.             ,helpstring("Prints the object.")
  2641.             ,restricted, hidden
  2642.         ]
  2643.         HRESULT  PrintOut(
  2644.             [in, optional] VARIANT* From, // Starting page number.
  2645.             [in, optional] VARIANT* To, // Ending page number.
  2646.             [in, optional] VARIANT* Copies, // Number of copies to print.
  2647.             [in, optional] VARIANT* ActivePrinter, // Name of printer to use.
  2648.             [in, optional] VARIANT* OutputFileName, // File name to print to.
  2649.             [in, optional] VARIANT* FitToPage, // True to fit on one page.
  2650.             [in, optional] VARIANT* Collate // True to collate copies.
  2651.             );
  2652.  
  2653.         /**
  2654.          * Redoes the last user interface action.
  2655.          *
  2656.          * @see TCADAPI TCWRedo function.
  2657.          */
  2658.         [
  2659.              helpcontext(0x10010029)
  2660.             ,helpstring("Redoes the last user interface action.")
  2661.         ]
  2662.         HRESULT  Redo(
  2663.             [in, optional] VARIANT* Times, // Number of actions to redo.
  2664.             [out, retval] IMSI_BOOL* prop // True if the redo was successful.
  2665.         );
  2666.  
  2667.         /**
  2668.          * Repeats the last user interface action.
  2669.          *
  2670.          * @see TCADAPI TCWRedo function.
  2671.          */
  2672.         [
  2673.              helpcontext(0x1001002A)
  2674.             ,helpstring("Repeats the last user interface action.")
  2675.             ,restricted, hidden
  2676.         ]
  2677.         HRESULT  Repeat(
  2678.             [in] VARIANT* Times, // Number of actions to repeat.
  2679.             [out, retval] IMSI_BOOL* prop // True if the repeat was successful.
  2680.         );
  2681.  
  2682.         /**
  2683.          * Saves changes to the specified Drawing object.
  2684.          *
  2685.          * @see TCADAPI TCWDrawingSave function.
  2686.          */
  2687.         [
  2688.              helpcontext(0x1001002B)
  2689.             ,helpstring("Saves changes to the specified Drawing object.")
  2690.         ]
  2691.         HRESULT  Save(
  2692.             );
  2693.  
  2694.         /**
  2695.          * Saves the changes to the Drawing object in a different file.
  2696.          *
  2697.          * @see TCADAPI TCWDrawingSaveAs function.
  2698.          */
  2699.         [
  2700.              helpcontext(0x1001002C)
  2701.             ,helpstring("Saves the changes to the Drawing object in a different file.")
  2702.         ]
  2703.         HRESULT  SaveAs(
  2704.             [in] BSTR Filename, // The file name to save to.
  2705.             [in, optional] VARIANT* Filter // Name or index of preferred filter.
  2706.             );
  2707.  
  2708.         /**
  2709.          * Saves a copy of the Drawing object to a file but does not modify the open Drawing object.
  2710.          */
  2711.         [
  2712.              helpcontext(0x1001002D)
  2713.             ,helpstring("Saves a copy of the Drawing object to a file but does not modify the open Drawing object.")
  2714.         ]
  2715.         HRESULT  SaveCopyAs(
  2716.             [in] BSTR Filename, // File name to save to.
  2717.             [in, optional] VARIANT* Filter // Name or index of preferred filter.
  2718.             );
  2719.  
  2720.         /**
  2721.          * Selects all of the Graphic object's in the Drawing object's Graphics collection.
  2722.          * Has the same effect as Drawing.Graphics.Select.
  2723.          */
  2724.         [
  2725.              helpcontext(0x1001002E)
  2726.             ,helpstring("Selects all of the Graphic object's in the Drawing object's Graphics collection.")
  2727.         ]
  2728.         HRESULT  SelectAll(
  2729.             );
  2730.  
  2731.         /**
  2732.          * Sends the Drawing object as an attachment using the installed mail system.
  2733.          */
  2734.         [
  2735.              helpcontext(0x1001002F)
  2736.             ,helpstring("Sends the Drawing object as an attachment using the installed mail system.")
  2737.             ,restricted, hidden
  2738.         ]
  2739.         HRESULT  Send(
  2740.             [in] VARIANT* Recipients, // Names of recipients, as a string or string array.
  2741.             [in, optional] VARIANT* Subject, // Subject line.
  2742.             [in, optional] VARIANT* Message, // Message.
  2743.             [in, optional] VARIANT* CCRecipients, // Names of CC recipients, as a string or string array.
  2744.             [in, optional] VARIANT* BCCRecipients, // Names of BCC recipients, as a string or string array.
  2745.             [in, optional] VARIANT* ReturnReceipt // True to request return receipt.
  2746.             );
  2747.  
  2748.         /**
  2749.          * Sends the Drawing object as an attachment using the installed mail system.
  2750.          * Runs a dialog to get the mail information.
  2751.          */
  2752.         [
  2753.              helpcontext(0x10010030)
  2754.             ,helpstring("Sends the Drawing object as an attachment using the installed mail system.")
  2755.             ,restricted, hidden
  2756.         ]
  2757.         HRESULT  SendMail(
  2758.             );
  2759.  
  2760.         /**
  2761.          * Cancels the last user interface action.
  2762.          *
  2763.          * @see TCADAPI TCWUndo function.
  2764.          */
  2765.         [
  2766.              helpcontext(0x10010031)
  2767.             ,helpstring("Cancels the last user interface action.")
  2768.         ]
  2769.         HRESULT  Undo(
  2770.             [in, optional] VARIANT* Times, // Number of actions to undo.
  2771.             [out, retval] IMSI_BOOL* prop // True if the Undo was successful.
  2772.         );
  2773.  
  2774.         /**
  2775.          * Clears all the Drawing object's undo entries.
  2776.          *
  2777.          * @see TCADAPI TCWUndoClear function.
  2778.          */
  2779.         [
  2780.              helpcontext(0x10010032)
  2781.             ,helpstring("Clears all the Drawing object's undo entries.")
  2782.         ]
  2783.         HRESULT  UndoClear(
  2784.         );
  2785.  
  2786.         /**
  2787.          * Unselects all of the Graphic object's in the Drawing object's Graphics collection.
  2788.          * Has the same effect as Drawing.Graphics.Unselect or Drawing.Selection.Unselect.
  2789.          */
  2790.         [
  2791.              helpcontext(0x10010033)
  2792.             ,helpstring("Unselects all of the Graphic object's in the Drawing object's Graphics collection.")
  2793.         ]
  2794.         HRESULT  UnselectAll(
  2795.             );
  2796.  
  2797.         /**
  2798.          * Updates a link (or links).
  2799.          */
  2800.         [
  2801.              helpcontext(0x10010034)
  2802.             ,helpstring("Updates a link (or links).")
  2803.             ,restricted, hidden
  2804.         ]
  2805.         HRESULT  UpdateLink(
  2806.             [in, optional] VARIANT* LinkName // Name of link to update.
  2807.             );
  2808.  
  2809.         ////////////////////// New stuff added here \\\\\\\\\\\\\\\\\\\\
  2810.  
  2811.         /**
  2812.          * Returns the location of the relative origin, as a Vertex object.
  2813.          */
  2814.         [
  2815.              propget
  2816.             ,helpcontext(0x10010035)
  2817.             ,helpstring("Returns the location of the relative origin from a Vertex object.")
  2818.         ]
  2819.         HRESULT  RelativeOrigin(
  2820.             [out, retval] IVertex** prop
  2821.             );
  2822.  
  2823.         /**
  2824.          * Sets the location of the relative origin, as a Vertex object.
  2825.          */
  2826.         [
  2827.              propput
  2828.             ,restricted, hidden
  2829.             ,helpcontext(0x10010035)
  2830.             ,helpstring("Sets the location of the relative origin from a Vertex object.")
  2831.         ]
  2832.         HRESULT  RelativeOrigin(
  2833.             [in] IVertex* prop
  2834.             );
  2835.  
  2836.  
  2837.         /**
  2838.          * Returns the Drawing object's NamedViews collection.
  2839.          */
  2840.         [
  2841.              propget
  2842.             ,helpcontext(0x10010036)
  2843.             ,helpstring("Returns the Drawing object's Macros collection.")
  2844.         ]
  2845.         HRESULT  Macros(
  2846.             [out, retval] Macros** prop // The NamedViews collection.
  2847.             );
  2848.  
  2849.         [
  2850.              helpcontext(0x10010037)
  2851.             ,helpstring("update graphic in render scene")
  2852.         ]
  2853.         HRESULT  RenderScenesGraphicsUpdate(
  2854.              [in] IDispatch *pDisp
  2855.             ,[in] ImsiRenderGraphicUpdate flag
  2856.             );
  2857.  
  2858.         [
  2859.              helpcontext(0x10010038)
  2860.             ,helpstring("update changes in render scene")
  2861.         ]
  2862.         HRESULT  RenderScenesUpdateChanges(
  2863.             );
  2864.  
  2865.  
  2866.         /**
  2867.          * Returns the copy Drawing CS as Matrix object
  2868.          */
  2869.         [
  2870.              propget
  2871.             ,helpcontext(0x10010039)
  2872.             ,helpstring("Returns the Drawing CS as Matrix object .")
  2873.         ]
  2874.         HRESULT  UCS(
  2875.             [out, retval] IMatrix** prop // The Matrix object.
  2876.             );
  2877.  
  2878.  
  2879.         [
  2880.              propget
  2881.             ,helpcontext(0x1001003A)
  2882.             ,helpstring("returns the active View object")
  2883.         ]
  2884.         HRESULT  ActiveView(
  2885.             [out, retval] View** pVal /* The ative View object*/
  2886.             );
  2887.  
  2888.         /**
  2889.          * Returns the Drawing object's PaperSpaces collection.
  2890.          */
  2891.         [
  2892.              propget
  2893.             ,helpcontext(0x1001003B)
  2894.             ,helpstring("Returns the Drawing object's PaperSpaces collection.")
  2895.         ]
  2896.         HRESULT  PaperSpaces(
  2897.             [out, retval] IDispatch** prop // The PaperSpaces collection.
  2898.             );
  2899.  
  2900.         /**
  2901.          * Returns the Drawing object's TieSets collection.
  2902.          */
  2903.         [
  2904.              propget
  2905.             ,helpcontext(0x1001003C)
  2906.             ,helpstring("Returns the Drawing object's PaperSpaces collection.")
  2907.         ]
  2908.         HRESULT  TieSets(
  2909.             [out, retval] IDispatch** prop // The TieSets collection.
  2910.             );
  2911.  
  2912.         /**
  2913.          * Sets the Drawing CS as Matrix object
  2914.          */
  2915.         [
  2916.              propput
  2917.             ,helpcontext(0x10010039)
  2918.             ,helpstring("Set the Drawing CS by Matrix object .")
  2919.         ]
  2920.         HRESULT  UCS(
  2921.             [in] IMatrix* prop // The Matrix object.
  2922.             );
  2923.  
  2924.         /**
  2925.         * Starts Edit Content of Group/Block
  2926.         */
  2927.         [
  2928.              helpcontext(0x10010040)
  2929.             ,helpstring("Starts Edit Content of Group/Block")
  2930.         ]
  2931.         HRESULT  StartEditContent(
  2932.              [in]            IDispatch* prop  // The new Drawing's graphics collection.
  2933.             ,[out, retval]    ImsiEditContentModeType* pbRet
  2934.             );
  2935.  
  2936.         /**
  2937.         * Finish Edit Content of Group/Block
  2938.         */
  2939.         [
  2940.              helpcontext(0x10010040)
  2941.             ,helpstring("Finish Edit Content of Group/Block")
  2942.         ]
  2943.         HRESULT  FinishEditContent(
  2944.             [out, retval]    ImsiEditContentModeType* pecMode
  2945.             );
  2946.  
  2947.         /*
  2948.         *
  2949.         */
  2950.         [
  2951.              propget
  2952.             ,helpcontext(0x10010040)
  2953.             ,helpstring("Returns current Edit Contaent State")
  2954.         ]
  2955.         HRESULT     EditContent(
  2956.              [out, retval]    ImsiEditContentModeType* pecMode
  2957.             );
  2958.         /**
  2959.          * Returns the Drawing object's NamedUCSs collection.
  2960.          */
  2961.         [
  2962.             propget
  2963.             ,helpcontext(0x10010041)
  2964.             ,helpstring("Returns the Drawing object's NamedUCSs collection.")
  2965.         ] 
  2966.         HRESULT NamedUCSs(
  2967.                         [out, retval] IDispatch** prop
  2968.                         );
  2969.  
  2970.         /**
  2971.          * Returns the Drawing object's NamedUCSs collection.
  2972.          */
  2973.         [
  2974.             propget
  2975.             ,helpcontext(0x10010042)
  2976.             ,helpstring("Returns the Drawing object's LayersSets collection.")
  2977.         ] 
  2978.         HRESULT LayersSets(
  2979.                         [out, retval] LayersSets** prop
  2980.                         );
  2981.     };
  2982.  
  2983.  
  2984.  
  2985.     /**
  2986.      * The collection of Drawing objects contained by the Application object.
  2987.      * Enumerates the Drawings contained by the Application.
  2988.      * Allows setting of properties for all drawings in the collection.
  2989.      */
  2990.     [
  2991.          object
  2992.         ,uuid(6A481108-E531-11CF-A115-00A024158DAF)
  2993.         ,oleautomation
  2994.         ,dual
  2995.         ,helpcontext(0x10020000)
  2996.         ,helpstring("The collection of Drawing objects contained by the Application object.")
  2997.     ]
  2998.     interface Drawings : IDispatch
  2999.     {
  3000.  
  3001.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  3002.  
  3003.         /**
  3004.          * Returns an Application object that represents the owner of the specified object.
  3005.          */
  3006.         [
  3007.              propget
  3008.             ,helpcontext(0x10020001)
  3009.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  3010.         ]
  3011.         HRESULT  Application(
  3012.             [out, retval] IApplication** prop // The Application object.
  3013.             );
  3014.  
  3015.         /**
  3016.          * Returns the number of items in the collection.
  3017.          *
  3018.          * @see TCADAPI TCWDrawingCount function.
  3019.          */
  3020.         [
  3021.              propget
  3022.             ,helpcontext(0x10020002)
  3023.             ,helpstring("Returns the number of items in the collection.")
  3024.         ]
  3025.         HRESULT  Count(
  3026.             [out, retval] long* prop // The number of items.
  3027.             );
  3028.  
  3029.         /**
  3030.          * Returns an item in the collection.
  3031.          * Index can be specified as a long integer or as a string (Drawing name).
  3032.          */
  3033.         [
  3034.              propget
  3035.             ,id(DISPID_VALUE)
  3036.             ,helpcontext(0x10020003)
  3037.             ,helpstring("Returns an item in the collection.")
  3038.         ]
  3039.         HRESULT  Item(
  3040.             [in] VARIANT* Index, // Index of item to return.
  3041.             [out, retval] IDrawing** prop // The item.
  3042.             );
  3043.  
  3044.         /**
  3045.          * Returns the parent object for the specified object.
  3046.          * The parent of the Drawings collection is the Application object.
  3047.          */
  3048.         [
  3049.              propget
  3050.             ,helpcontext(0x10020004)
  3051.             ,helpstring("Returns the parent object for the specified object.")
  3052.         ]
  3053.         HRESULT  Parent(
  3054.             [out, retval] IApplication** prop // The parent object.
  3055.             );
  3056.  
  3057.         /**
  3058.          * Creates an enumeration object.
  3059.          */
  3060.         [
  3061.              propget
  3062.             ,restricted
  3063.             ,id(DISPID_NEWENUM)
  3064.             ,helpcontext(0x10020005)
  3065.             ,helpstring("Private.  Creates an enumeration object.")
  3066.         ]
  3067.         HRESULT  _NewEnum(
  3068.             [out, retval] IUnknown** prop // The enumeration object.
  3069.             );
  3070.  
  3071.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  3072.  
  3073.         /**
  3074.          * Creates a new Drawing object.
  3075.          *
  3076.          * @see TCADAPI TCWDrawingNew function.
  3077.          */
  3078.         [
  3079.              helpcontext(0x10020006)
  3080.             ,helpstring("Creates a new Drawing object.")
  3081.         ]
  3082.         HRESULT  Add(
  3083.             [in, optional] VARIANT* Template, // A drawing template name.
  3084.             [out, retval] IDrawing** prop // The newly created Drawing object.
  3085.             );
  3086.  
  3087.         /**
  3088.          * Closes all Drawing objects in the collection.
  3089.          */
  3090.         [
  3091.              helpcontext(0x10020007)
  3092.             ,helpstring("Closes all Drawing objects in the collection.")
  3093.         ]
  3094.         HRESULT  Close(
  3095.             );
  3096.  
  3097.         /**
  3098.          * Opens a previously saved Drawing object.
  3099.          *
  3100.          * @see TCADAPI TCWDrawingOpen function.
  3101.          */
  3102.         [
  3103.              helpcontext(0x10020008)
  3104.             ,helpstring("Opens a previously saved Drawing object.")
  3105.         ]
  3106.         HRESULT  Open(
  3107.             [in] BSTR Filename, // Name of file to open.
  3108.             [in, optional] VARIANT* ReadOnly, // True if opened Drawing object should not be modified.
  3109.             [in, optional] VARIANT* Filter, // Name or index of preferred file filter.
  3110.             [out, retval] IDrawing** prop // The opened Drawing object.
  3111.             );
  3112.  
  3113.         /**
  3114.          * Returns the index within the Drawings collection of the specified drawing handle.
  3115.          * Private.
  3116.          */
  3117.         [
  3118.              restricted
  3119.             ,helpcontext(0x10020009)
  3120.             ,helpstring("Private.  Returns the index within the Drawings collection of the specified drawing handle.")
  3121.         ]
  3122.         HRESULT  _FindIndex(
  3123.             [in] long d, // The drawing handle.
  3124.             [out, retval] long* prop // The index.
  3125.             );
  3126.  
  3127.     };
  3128.  
  3129.  
  3130.  
  3131.     /**
  3132.      * A graphic entity.  Graphic objects can be standalone, or can be
  3133.      * contained by a Drawing object, a Block object, or a parent Graphic object.
  3134.      * <p>
  3135.      * RegenMethod objects support user-defined types.
  3136.      */
  3137.     [
  3138.          object
  3139.         ,uuid(6A481109-E531-11CF-A115-00A024158DAF)
  3140.         ,oleautomation
  3141.         ,dual
  3142.         ,helpcontext(0x10030000)
  3143.         ,helpstring("A graphic entity.")
  3144.     ]
  3145.     interface IGraphic : IDispatch
  3146.     {
  3147.  
  3148.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  3149.  
  3150.         /**
  3151.          * Returns an Application object that represents the owner of the specified object.
  3152.          */
  3153.         [
  3154.              propget
  3155.             ,helpcontext(0x10030001)
  3156.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  3157.         ]
  3158.         HRESULT  Application(
  3159.             [out, retval] IApplication** prop // The Application object.
  3160.             );
  3161.  
  3162.         /**
  3163.          * Returns the Graphic object's brush style.
  3164.          */
  3165.         [
  3166.              propget
  3167.             ,helpcontext(0x10030002)
  3168.             ,helpstring("Returns the Graphic object's brush style.")
  3169.         ]
  3170.         HRESULT  BrushStyle(
  3171.             [out, retval] BrushStyle** prop // The BrushStyle object.
  3172.             );
  3173.  
  3174.         /**
  3175.          * Sets the Graphic object's brush style, either from a string or an object.
  3176.          */
  3177.         [
  3178.              propput
  3179.             ,helpcontext(0x10030002)
  3180.             ,helpstring("Sets the Graphic object's brush style, either from a string or an object.")
  3181.         ]
  3182.         HRESULT  BrushStyle(
  3183.             [in] VARIANT* prop // The BrushStyle object or its name.
  3184.             );
  3185.  
  3186.         /**
  3187.          * True if the object is built-in.
  3188.          */
  3189.         [
  3190.              propget
  3191.             ,helpcontext(0x10030003)
  3192.             ,helpstring("True if the object is built-in.")
  3193.         ]
  3194.         HRESULT  Builtin(
  3195.             [out, retval] IMSI_BOOL* prop // Tre if the object is built-in.
  3196.             );
  3197.  
  3198.         /**
  3199.          * Returns the Graphic object's GraphicCallbacks object.
  3200.          */
  3201.         [
  3202.              propget
  3203.             ,restricted, hidden
  3204.             ,helpcontext(0x10030004)
  3205.             ,helpstring("Returns the Graphic object's GraphicCallbacks object.")
  3206.         ]
  3207.         HRESULT  Callbacks(
  3208.             [out, retval] GraphicCallbacks** prop // The GraphicCallbacks object.
  3209.             );
  3210.  
  3211.         /**
  3212.          * True if the Graphic object is a closed figure.
  3213.          */
  3214.         [
  3215.              propget
  3216.             ,helpcontext(0x10030005)
  3217.             ,helpstring("True if the Graphic object is a closed figure.")
  3218.         ]
  3219.         HRESULT  Closed(
  3220.             [out, retval] IMSI_BOOL* prop // True if the Graphic object is a closed figure.
  3221.             );
  3222.  
  3223.         /**
  3224.          * True if the Graphic object is a closed figure.
  3225.          */
  3226.         [
  3227.              propput
  3228.             ,helpcontext(0x10030005)
  3229.             ,helpstring("True if the Graphic object is a closed figure.")
  3230.         ]
  3231.         HRESULT  Closed(
  3232.             [in] IMSI_BOOL prop // True if the Graphic object is a closed figure.
  3233.             );
  3234.  
  3235.         /**
  3236.          * True if the Graphic object is used for display regeneration only.
  3237.          */
  3238.         [
  3239.              propget
  3240.             ,helpcontext(0x10030006)
  3241.             ,helpstring("True if the Graphic object is used for display regeneration only.")
  3242.         ]
  3243.         HRESULT  Cosmetic(
  3244.             [out, retval] IMSI_BOOL* prop // True if the Graphic object is used for display regeneration only.
  3245.             );
  3246.  
  3247.         /**
  3248.          * True if the Graphic object is used for display regeneration only.
  3249.          */
  3250.         [
  3251.              propput
  3252.             ,helpcontext(0x10030006)
  3253.             ,helpstring("True if the Graphic object is used for display regeneration only.")
  3254.         ]
  3255.         HRESULT  Cosmetic(
  3256.             [in] IMSI_BOOL prop // True if the Graphic object is used for display regeneration only.
  3257.             );
  3258.  
  3259.         /**
  3260.          * True if the Graphic object is on the purge/undo list.
  3261.          */
  3262.         [
  3263.              propget
  3264.             ,helpcontext(0x10030007)
  3265.             ,helpstring("True if the Graphic object is on the purge/undo list.")
  3266.         ]
  3267.         HRESULT  Deleted(
  3268.             [out, retval] IMSI_BOOL* prop // True if the Graphic object is on the purge/undo list.
  3269.             );
  3270.  
  3271.         /**
  3272.          * True if the Graphic object is on the purge/undo list.
  3273.          */
  3274.         [
  3275.              propput
  3276.             ,helpcontext(0x10030007)
  3277.             ,helpstring("True if the Graphic object is on the purge/undo list.")
  3278.         ]
  3279.         HRESULT  Deleted(
  3280.             [in] IMSI_BOOL prop // True if the Graphic object is on the purge/undo list.
  3281.             );
  3282.  
  3283.         /**
  3284.          * Returns the Drawing object that owns the object.
  3285.          */
  3286.         [
  3287.              propget
  3288.             ,helpcontext(0x10030008)
  3289.             ,helpstring("Returns the Drawing object that owns the object.")
  3290.         ]
  3291.         HRESULT  Drawing(
  3292.             [out, retval] IDrawing** prop // The Drawing object.
  3293.             );
  3294.  
  3295.         /**
  3296.          * True if the Graphic object can be edited in the user interface.
  3297.          */
  3298.         [
  3299.              propget
  3300.             ,helpcontext(0x10030009)
  3301.             ,helpstring("True if the Graphic object can be edited in the user interface.")
  3302.         ]
  3303.         HRESULT  Editable(
  3304.             [out, retval] IMSI_BOOL* prop // True if the Graphic object can be edited in the user interface.
  3305.             );
  3306.  
  3307.         /**
  3308.          * True if the Graphic object can be edited in the user interface.
  3309.          */
  3310.         [
  3311.              propput
  3312.             ,helpcontext(0x10030009)
  3313.             ,helpstring("True if the Graphic object can be edited in the user interface.")
  3314.         ]
  3315.         HRESULT  Editable(
  3316.             [in] IMSI_BOOL prop // True if the Graphic object can be edited in the user interface.
  3317.             );
  3318.  
  3319.         /**
  3320.          * Returns the Graphics collection which represents the children of this Graphic object.
  3321.          */
  3322.         [
  3323.              propget
  3324.             ,helpcontext(0x1003000A)
  3325.             ,helpstring("Returns the Graphics collection which represents the children of this Graphic object.")
  3326.         ]
  3327.         HRESULT  Graphics(
  3328.             [out, retval] Graphics** prop // The Graphics collection.
  3329.             );
  3330.  
  3331.         /**
  3332.          * Returns the Graphic object's database ID.
  3333.          */
  3334.         [
  3335.              propget
  3336.             ,helpcontext(0x1003000B)
  3337.             ,helpstring("Returns the Graphic object's database ID.")
  3338.         ]
  3339.         HRESULT  ID(
  3340.             [out, retval] long* prop // The database ID.
  3341.             );
  3342.  
  3343.         /**
  3344.          * Sets the Graphic object's database ID.
  3345.          */
  3346.         [
  3347.              propput
  3348.             ,helpcontext(0x1003000B)
  3349.             ,helpstring("Sets the Graphic object's database ID.")
  3350.         ]
  3351.         HRESULT  ID(
  3352.             [in] long prop // The database ID.
  3353.             );
  3354.  
  3355.         /**
  3356.          * Returns the index of the item in the collection.
  3357.          */
  3358.         [
  3359.              propget
  3360.             ,helpcontext(0x1003000C)
  3361.             ,helpstring("Returns the index of the item in the collection.")
  3362.         ]
  3363.         HRESULT  Index(
  3364.             [out, retval] long* prop // The index.
  3365.             );
  3366.  
  3367.         /**
  3368.          * Returns the Graphic object's layer.
  3369.          */
  3370.         [
  3371.              propget
  3372.             ,helpcontext(0x1003000D)
  3373.             ,helpstring("Returns the Graphic object's layer.")
  3374.         ]
  3375.         HRESULT  Layer(
  3376.             [out, retval] Layer** prop // The Layer object.
  3377.             );
  3378.  
  3379.         /**
  3380.          * Sets the Graphic object's layer, either from a string or an object.
  3381.          */
  3382.         [
  3383.              propput
  3384.             ,helpcontext(0x1003000D)
  3385.             ,helpstring("Sets the Graphic object's layer, either from a string or an object.")
  3386.         ]
  3387.         HRESULT  Layer(
  3388.             [in] VARIANT* prop // The Layer object or its name.
  3389.             );
  3390.  
  3391.         /**
  3392.          * Returns the Graphic object's LineStyle object.
  3393.          */
  3394.         [
  3395.              propget
  3396.             ,helpcontext(0x1003000E)
  3397.             ,helpstring("Returns the Graphic object's LineStyle object.")
  3398.         ]
  3399.         HRESULT  LineStyle(
  3400.             [out, retval] LineStyle** prop // The LineStyle object.
  3401.             );
  3402.  
  3403.         /**
  3404.          * Sets the Graphic object's LineStyle object, either from a string or an object.
  3405.          */
  3406.         [
  3407.              propput
  3408.             ,helpcontext(0x1003000E)
  3409.             ,helpstring("Sets the Graphic object's LineStyle object, either from a string or an object.")
  3410.         ]
  3411.         HRESULT  LineStyle(
  3412.             [in] VARIANT* prop // The LineStyle object or its name.
  3413.             );
  3414.  
  3415.         /**
  3416.          * Returns the name of the object.
  3417.          */
  3418.         [
  3419.              propget
  3420.             ,id(DISPID_VALUE)
  3421.             ,helpcontext(0x1003000F)
  3422.             ,helpstring("Returns the name of the object.")
  3423.         ]
  3424.         HRESULT  Name(
  3425.             [out, retval] BSTR* prop // The object's name.
  3426.             );
  3427.  
  3428.         /**
  3429.          * Sets the name of the object.
  3430.          */
  3431.         [
  3432.              propput, id(DISPID_VALUE)
  3433.             ,helpcontext(0x1003000F)
  3434.             ,helpstring("Sets the name of the object.")
  3435.         ]
  3436.         HRESULT  Name(
  3437.             [in] BSTR prop // The object's name.
  3438.             );
  3439.  
  3440.         /**
  3441.          * Returns the Vertices collection which represents the editable child Vertex objects of this Graphic object.
  3442.          */
  3443.         [
  3444.              propget
  3445.             ,helpcontext(0x10030010)
  3446.             ,helpstring("Returns the Vertices collection which represents the editable child Vertex objects of this Graphic object.")
  3447.         ]
  3448.         HRESULT  Nodes(
  3449.             [out, retval] Vertices** prop // The Vertices collection.
  3450.             );
  3451.  
  3452.         /**
  3453.          * Returns the parent object for the specified object.
  3454.          * If the Graphic object has not been added to a Drawing object, the parent of the Graphic object
  3455.          * is the Application object.  Otherwise, the parent is a Graphic object or a Drawing object.
  3456.          */
  3457.         [
  3458.              propget
  3459.             ,helpcontext(0x10030011)
  3460.             ,helpstring("Returns the parent object for the specified object.")
  3461.         ]
  3462.         HRESULT  Parent(
  3463.             [out, retval] IDispatch** prop // The parent object.
  3464.             );
  3465.  
  3466.         /**
  3467.          * Returns the Graphic object's Properties collection.
  3468.          * For the complete list of available Graphic Properties, follow
  3469.          * <A HREF="grfprops.html">this link</A>.
  3470.          *
  3471.          * @see TCADAPI TCWGraphicPropertyGet/Set functions
  3472.          */
  3473.         [
  3474.              propget
  3475.             ,helpcontext(0x10030012)
  3476.             ,helpstring("Returns the Graphic object's Properties collection.")
  3477.         ]
  3478.         HRESULT  Properties(
  3479.             [out, retval] Properties** prop // The Properties collection.
  3480.             );
  3481.  
  3482.         /**
  3483.          * Returns the Graphic object's regen type.
  3484.          */
  3485.         [
  3486.              propget
  3487.             ,helpcontext(0x10030013)
  3488.             ,helpstring("Returns the Graphic object's regen type.")
  3489.         ]
  3490.         HRESULT  RegenType(
  3491.             [out, retval] RegenMethod** prop // The RegenMethod object.
  3492.             );
  3493.  
  3494.         /**
  3495.          * Sets the Graphic object's regen type.
  3496.          */
  3497.         [
  3498.              propput
  3499.             ,restricted, hidden
  3500.             ,helpcontext(0x10030013)
  3501.             ,helpstring("Sets the Graphic object's regen type.")
  3502.         ]
  3503.         HRESULT  RegenType(
  3504.             [in] VARIANT* prop // The RegenMethod object or a string.
  3505.             );
  3506.  
  3507.         /**
  3508.          * True if the Graphic object is the root of a tree.
  3509.          */
  3510.         [
  3511.              propget
  3512.             ,helpcontext(0x10030014)
  3513.             ,helpstring("True if the Graphic object is the root of a tree.")
  3514.         ]
  3515.         HRESULT  Root(
  3516.             [out, retval] IMSI_BOOL* prop // True if the Graphic object is the root of a tree.
  3517.             );
  3518.  
  3519.         /**
  3520.          * True if the Graphic object is the root of a tree.
  3521.          */
  3522.         [
  3523.              propput
  3524.             ,restricted, hidden
  3525.             ,helpcontext(0x10030014)
  3526.             ,helpstring("True if the Graphic object is the root of a tree.")
  3527.         ]
  3528.         HRESULT  Root(
  3529.             [in] IMSI_BOOL prop // True if the Graphic object is the root of a tree.
  3530.             );
  3531.  
  3532.         /**
  3533.          * Returns the Graphic object's style.
  3534.          */
  3535.         [
  3536.              propget
  3537.             ,restricted, hidden
  3538.             ,helpcontext(0x10030015)
  3539.             ,helpstring("Returns the Graphic object's style.")
  3540.         ]
  3541.         HRESULT  Style(
  3542.             [out, retval] Style** prop // The StyleObj.
  3543.             );
  3544.  
  3545.         /**
  3546.          * Sets the Graphic object's style.
  3547.          * Unimplemented.
  3548.          */
  3549.         [
  3550.              propput
  3551.             ,restricted, hidden
  3552.             ,helpcontext(0x10030015)
  3553.             ,helpstring("Unimplemented.  Sets the Graphic object's style.")
  3554.         ]
  3555.         HRESULT  Style(
  3556.             [in] VARIANT* prop // The StyleObj or a string.
  3557.             );
  3558.  
  3559.         /**
  3560.          * Returns the Graphic object's type, as a string.
  3561.          */
  3562.         [
  3563.              propget
  3564.             ,helpcontext(0x10030016)
  3565.             ,helpstring("Returns the Graphic object's type, as a string.")
  3566.         ]
  3567.         HRESULT  Type(
  3568.             [out, retval] BSTR* prop // The Graphic object's type.
  3569.             );
  3570.  
  3571.         /**
  3572.          * True if the Graphic object is unbounded.
  3573.          */
  3574.         [
  3575.              propget
  3576.             ,helpcontext(0x10030017)
  3577.             ,helpstring("True if the Graphic object is unbounded.")
  3578.         ]
  3579.         HRESULT  Unbounded(
  3580.             [out, retval] IMSI_BOOL* prop // True if the Graphic object is unbounded.
  3581.             );
  3582.  
  3583.         /**
  3584.          * True if the Graphic object is unbounded.
  3585.          */
  3586.         [
  3587.              propput
  3588.             ,helpcontext(0x10030017)
  3589.             ,helpstring("True if the Graphic object is unbounded.")
  3590.         ]
  3591.         HRESULT  Unbounded(
  3592.             [in] IMSI_BOOL prop // True if the Graphic object is unbounded.
  3593.             );
  3594.  
  3595.         /**
  3596.          * Returns the Vertices collection which represents the child Vertex objects of this Graphic object.
  3597.          */
  3598.         [
  3599.              propget
  3600.             ,helpcontext(0x10030018)
  3601.             ,helpstring("Returns the Vertices collection which represents the child Vertex objects of this Graphic object.")
  3602.         ]
  3603.         HRESULT  Vertices(
  3604.             [out, retval] Vertices** prop // The Vertices collection.
  3605.             );
  3606.  
  3607.         /**
  3608.          * True if the object is visible.
  3609.          * Unimplemented.
  3610.          */
  3611.         [
  3612.              propget
  3613.             ,helpcontext(0x10030019)
  3614.             ,helpstring("True if the object is visible.")
  3615.         ]
  3616.         HRESULT  Visible(
  3617.             [out, retval] IMSI_BOOL* prop // True if the object is visible.
  3618.             );
  3619.  
  3620.         /**
  3621.          * True if the object is visible.
  3622.          */
  3623.         [
  3624.              propput
  3625.             ,helpcontext(0x10030019)
  3626.             ,helpstring("Unimplemented.  True if the object is visible.")
  3627.         ]
  3628.         HRESULT  Visible(
  3629.             [in] IMSI_BOOL prop // True if the object is visible.
  3630.             );
  3631.  
  3632.         /**
  3633.          * Returns the z-order position of the object.
  3634.          */
  3635.         [
  3636.              propget
  3637.             ,restricted, hidden
  3638.             ,helpcontext(0x1003001A)
  3639.             ,helpstring("Returns the z-order position of the object.")
  3640.         ]
  3641.         HRESULT  ZOrder(
  3642.             [out, retval] long* prop // The z-order position of the object.
  3643.             );
  3644.  
  3645.         /**
  3646.          * Returns the internal handle associated with the Graphic object.
  3647.          * Private.
  3648.          */
  3649.         [
  3650.              propget
  3651.             ,restricted
  3652.             ,helpcontext(0x1003001B)
  3653.             ,helpstring("Private.  Returns the internal handle associated with the Graphic object.")
  3654.         ]
  3655.         HRESULT  _Handle(
  3656.             [out, retval] long* prop // The internal handle.
  3657.             );
  3658.  
  3659.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  3660.  
  3661.         /**
  3662.          * Set the center, radius, and other arc parameters.
  3663.          */
  3664.         [
  3665.              helpcontext(0x1003001C)
  3666.             ,helpstring("Set the center, radius, and other arc parameters.")
  3667.         ]
  3668.         HRESULT  ArcSet(
  3669.             [in, optional] VARIANT* XCenter, // X coordinate of arc center point.
  3670.             [in, optional] VARIANT* YCenter, // Y coordinate of arc center point.
  3671.             [in, optional] VARIANT* ZCenter, // Z coordinate of arc center point.
  3672.             [in, optional] VARIANT* MajorAxis, // Length of major axis.
  3673.             [in, optional] VARIANT* MinorAxis, // Length of minor axis.
  3674.             [in, optional] VARIANT* StartAngle, // Starting angle in radians.
  3675.             [in, optional] VARIANT* EndAngle, // Ending angle in radians.
  3676.             [in, optional] VARIANT* RotationAngle // Rotation angle of major axis in radians.
  3677.             );
  3678.  
  3679.         /**
  3680.          * Returns the Graphic object's bounding box.
  3681.          */
  3682.         [
  3683.              helpcontext(0x1003001D)
  3684.             ,helpstring("Returns the Graphic object's bounding box.")
  3685.         ]
  3686.         HRESULT  CalcBoundingBox(
  3687.             [in, optional] VARIANT* Transform, // A transformation Matrix object.
  3688.             [out, retval] BoundingBox** prop // The BoundingBox object.
  3689.             );
  3690.  
  3691.         /**
  3692.          * Checks the spelling of a text Graphic object.
  3693.          */
  3694.         [
  3695.              helpcontext(0x1003001E)
  3696.             ,helpstring("Checks the spelling of a text Graphic object.")
  3697.             ,restricted, hidden
  3698.         ]
  3699.         HRESULT  CheckSpelling(
  3700.         [in, optional] VARIANT* CustomDictionary, // The name of a custom dictionary.
  3701.         [in, optional] VARIANT* IgnoreUppercase, // True to ignore case.
  3702.         [in, optional] VARIANT* CustomDictionary2, // The name of a custom dictionary.
  3703.         [in, optional] VARIANT* CustomDictionary3, // The name of a custom dictionary.
  3704.         [in, optional] VARIANT* CustomDictionary4, // The name of a custom dictionary.
  3705.         [in, optional] VARIANT* CustomDictionary5, // The name of a custom dictionary.
  3706.         [in, optional] VARIANT* CustomDictionary6, // The name of a custom dictionary.
  3707.         [in, optional] VARIANT* CustomDictionary7, // The name of a custom dictionary.
  3708.         [in, optional] VARIANT* CustomDictionary8, // The name of a custom dictionary.
  3709.         [in, optional] VARIANT* CustomDictionary9, // The name of a custom dictionary.
  3710.         [in, optional] VARIANT* CustomDictionary10 // The name of a custom dictionary.
  3711.         );
  3712.  
  3713.         /**
  3714.          * Finishes and closes an open polygon Graphic object.
  3715.          *
  3716.          * @see TCADAPI TCWGraphicClose function
  3717.          */
  3718.     [
  3719.          helpcontext(0x1003001F)
  3720.         ,helpstring("Finishes and closes an open polygon Graphic object.")
  3721.     ]
  3722.     HRESULT  Close(
  3723.         );
  3724.  
  3725.         /**
  3726.          * Draws the Graphic object.
  3727.          */
  3728.     [
  3729.          helpcontext(0x10030020)
  3730.         ,helpstring("Draws the Graphic object.")
  3731.     ]
  3732.     HRESULT  Draw(
  3733.         [in, optional] VARIANT* View // If supplied, the View object to draw on.
  3734.         );
  3735.  
  3736.         /**
  3737.          * Converts the Graphic object to a different type.
  3738.          */
  3739.         [
  3740.              helpcontext(0x10030021)
  3741.             ,helpstring("Converts the Graphic object to a different type.")
  3742.             ,restricted, hidden
  3743.         ]
  3744.         HRESULT  ConvertType(
  3745.             [in] VARIANT* GraphicType, // The type of the Graphic object.
  3746.             [in, optional] VARIANT* RegenMethod // A RegenMethod object or index.
  3747.             );
  3748.  
  3749.         /**
  3750.          * Deletes the object.
  3751.          */
  3752.         [
  3753.              helpcontext(0x10030022)
  3754.             ,helpstring("Deletes the object.")
  3755.         ]
  3756.         HRESULT  Delete(
  3757.             );
  3758.  
  3759.         /**
  3760.          * Duplicates the object and returns a reference to the new copy.
  3761.          */
  3762.         [
  3763.              helpcontext(0x10030023)
  3764.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  3765.         ]
  3766.         HRESULT  Duplicate(
  3767.             [out, retval] IGraphic** prop // The duplicated Graphic object.
  3768.             );
  3769.  
  3770.         /**
  3771.          * Returns a graphic that is linked to this one.
  3772.          */
  3773.         [
  3774.              helpcontext(0x10030024)
  3775.             ,helpstring("Returns a graphic that is linked to this one.")
  3776.         ]
  3777.         HRESULT  GetSubjectLink(
  3778.             [in, optional] VARIANT* VertexIndex, // The index or Vertex object to search.
  3779.             [in, optional] VARIANT* LinkIndex, // The link to get.
  3780.             [out, retval] IGraphic** prop // The linked Graphic object.
  3781.             );
  3782.  
  3783.         /**
  3784.          * Acquires a lock for regen.
  3785.          */
  3786.         [
  3787.              helpcontext(0x10030025)
  3788.             ,helpstring("Acquires a lock for regen.")
  3789.         ]
  3790.         HRESULT  RegenLock(
  3791.             [out, retval] long* prop // Previous value of lock count.
  3792.             );
  3793.  
  3794.         /**
  3795.          * Releases a lock for regen.
  3796.          */
  3797.         [
  3798.              helpcontext(0x10030026)
  3799.             ,helpstring("Releases a lock for regen.")
  3800.         ]
  3801.         HRESULT  RegenUnlock(
  3802.             [in, optional] VARIANT* LockCount // Lock count to reset to.
  3803.             );
  3804.  
  3805.         /**
  3806.          * Adds the Graphic object to the Drawing object's Selection object.
  3807.          *
  3808.          * @see TCADAPI TCWGraphicPropertySet function.
  3809.          */
  3810.         [
  3811.              helpcontext(0x10030027)
  3812.             ,helpstring("Adds the Graphic object to the Drawing object's Selection object.")
  3813.         ]
  3814.         HRESULT  Select(
  3815.             );
  3816.  
  3817.         /**
  3818.          * Set the start point, height, width, and other text parameters.
  3819.          */
  3820.         [
  3821.              helpcontext(0x10030028)
  3822.             ,helpstring("Set the start point, height, width, and other text parameters.")
  3823.         ]
  3824.         HRESULT  TextSet(
  3825.             [in, optional] VARIANT* Text, // The text string
  3826.             [in, optional] VARIANT* X, // X coordinate of text point.
  3827.             [in, optional] VARIANT* Y, // Y coordinate of text point.
  3828.             [in, optional] VARIANT* Z, // Z coordinate of text point.
  3829.             [in, optional] VARIANT* Width, // Width of object.
  3830.             [in, optional] VARIANT* Height, // Height of object.
  3831.             [in, optional] VARIANT* Angle // Rotation angle of object in radians.
  3832.             );
  3833.  
  3834.         /**
  3835.          * Removes the Graphic object from the Drawing object's Selection object.
  3836.          *
  3837.          * @see TCADAPI TCWGraphicPropertySet function.
  3838.          */
  3839.         [
  3840.              helpcontext(0x10030029)
  3841.             ,helpstring("Removes the Graphic object from the Drawing object's Selection object.")
  3842.         ]
  3843.         HRESULT  Unselect(
  3844.             );
  3845.  
  3846.         ///////////////////// Blocks Groups and Hatches \\\\\\\\\\\\\\\\\\\\\\\\\\
  3847.  
  3848.         /**
  3849.          * Explodes a group or block insertion.
  3850.          *
  3851.          * @see TCADAPI TCWExplode function
  3852.          */
  3853.     [
  3854.          helpcontext(0x1003002A)
  3855.         ,helpstring("Explodes a group or block insertion.")
  3856.     ]
  3857.     HRESULT  Explode(
  3858.         [out, retval] GraphicSet** prop // The exploded Graphic objects.
  3859.         );
  3860.  
  3861.         /////////////////////////// Copy Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  3862.  
  3863.         /**
  3864.          * Copies the Graphic object along a line.
  3865.          */
  3866.     [
  3867.          helpcontext(0x1003002B)
  3868.         ,helpstring("Copies the Graphic object along a line.")
  3869.         ,restricted, hidden
  3870.     ]
  3871.     HRESULT  LinearCopyAbsolute(
  3872.         [in] double X, // X coordinate to copy to.
  3873.         [in] double Y, // Y coordinate to copy to.
  3874.         [in] double Z, // Z coordinate to copy to.
  3875.         [in] long Copies, // Number of copies including the original.
  3876.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  3877.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3878.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3879.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3880.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3881.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3882.         );
  3883.  
  3884.         /**
  3885.          * Copies the Graphic object along a line.
  3886.          */
  3887.     [
  3888.          helpcontext(0x1003002C)
  3889.         ,helpstring("Copies the Graphic object along a line.")
  3890.         ,restricted, hidden
  3891.     ]
  3892.     HRESULT  LinearCopyRelative(
  3893.         [in] double X, // X offset.
  3894.         [in] double Y, // Y offset.
  3895.         [in] double Z, // Z offset.
  3896.         [in] long Copies, // Number of copies including the original.
  3897.         [in, optional] VARIANT* Fit, // True if specified offset is for last copy.
  3898.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3899.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3900.         );
  3901.  
  3902.         /**
  3903.          * Copies the Graphic object along a line.
  3904.          */
  3905.     [
  3906.          helpcontext(0x1003002D)
  3907.         ,helpstring("Copies the Graphic object along a line.")
  3908.         ,restricted, hidden
  3909.     ]
  3910.     HRESULT  LinearCopyAngle(
  3911.         [in] double Length, // Length of copy.
  3912.         [in] double Angle, // Angle of copy in radians.
  3913.         [in] long Copies, // Number of copies including the original.
  3914.         [in, optional] VARIANT* Fit, // True if specified length is for last copy.
  3915.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3916.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3917.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3918.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3919.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3920.         );
  3921.  
  3922.         /**
  3923.          * Copies the Graphic object radially.
  3924.          */
  3925.     [
  3926.          helpcontext(0x1003002E)
  3927.         ,helpstring("Copies the Graphic object radially.")
  3928.         ,restricted, hidden
  3929.     ]
  3930.     HRESULT  RadialCopyAbsolute(
  3931.         [in] double X0, // X coordinate of center of arc.
  3932.         [in] double Y0, // Y coordinate of center of arc.
  3933.         [in] double Z0, // Z coordinate of center of arc.
  3934.         [in] double X1, // X coordinate of point on arc.
  3935.         [in] double Y1, // Y coordinate of point on arc.
  3936.         [in] double Z1, // Z coordinate of point on arc.
  3937.         [in] long Copies, // Number of copies including the original.
  3938.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  3939.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3940.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3941.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3942.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3943.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3944.         );
  3945.  
  3946.         /**
  3947.          * Copies the Graphic object radially.
  3948.          */
  3949.     [
  3950.          helpcontext(0x1003002F)
  3951.         ,helpstring("Copies the Graphic object radially.")
  3952.         ,restricted, hidden
  3953.     ]
  3954.     HRESULT  RadialCopyAngle(
  3955.         [in] double X, // X coordinate of center of arc.
  3956.         [in] double Y, // Y coordinate of center of arc.
  3957.         [in] double Z, // Z coordinate of center of arc.
  3958.         [in] double Angle, // Angle between copies or for last copy.
  3959.         [in] double RotationAngle, // Angle to rotate each copy.
  3960.         [in] long Copies, // Number of copies including the original.
  3961.         [in, optional] VARIANT* Fit, // True if specified angle is for last copy.
  3962.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3963.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3964.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3965.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3966.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3967.         );
  3968.  
  3969.         /**
  3970.          * Copies the Graphic objects in a two dimensional array.
  3971.          */
  3972.     [
  3973.          helpcontext(0x10030030)
  3974.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  3975.         ,restricted, hidden
  3976.     ]
  3977.     HRESULT  ArrayCopyAbsolute(
  3978.         [in] double X, // X coordinate defining row and column spacing.
  3979.         [in] double Y, // Y coordinate defining row and column spacing.
  3980.         [in] double Z, // Z coordinate defining row and column spacing.
  3981.         [in] long Rows, // Number of rows including the original.
  3982.         [in] long Columns, // Number of columns including the original.
  3983.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  3984.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3985.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3986.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3987.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3988.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3989.         );
  3990.  
  3991.         /**
  3992.          * Copies the Graphic objects in a two dimensional array.
  3993.          */
  3994.     [
  3995.          helpcontext(0x10030031)
  3996.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  3997.         ,restricted, hidden
  3998.     ]
  3999.     HRESULT  ArrayCopyRelative(
  4000.         [in] double X, // X coordinate of column offset.
  4001.         [in] double Y, // Y coordinate of row offset.
  4002.         [in] long Rows, // Number of rows including the original.
  4003.         [in] long Columns, // Number of columns including the original.
  4004.         [in, optional] VARIANT* Fit, // True if specified offsets are for last copy.
  4005.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  4006.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  4007.         );
  4008.  
  4009.         /**
  4010.          * Mirrors the Graphic object about a line.
  4011.          */
  4012.     [
  4013.          helpcontext(0x10030032)
  4014.         ,helpstring("Mirrors the Graphic object about a line.")
  4015.         ,restricted, hidden
  4016.     ]
  4017.     HRESULT  MirrorCopyLine(
  4018.         [in] double X0, // X coordinate of the first point on line.
  4019.         [in] double Y0, // Y coordinate of the first point on line.
  4020.         [in] double Z0, // Z coordinate of the first point on line.
  4021.         [in] double X1, // X coordinate of the second point on line.
  4022.         [in] double Y1, // Y coordinate of the second point on line.
  4023.         [in] double Z1, // Z coordinate of the second point on line.
  4024.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  4025.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  4026.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  4027.         );
  4028.  
  4029.         /**
  4030.          * Mirrors the Graphic object about an angle.
  4031.          */
  4032.     [
  4033.          helpcontext(0x10030033)
  4034.         ,helpstring("Mirrors the Graphic object about an angle.")
  4035.         ,restricted, hidden
  4036.     ]
  4037.     HRESULT  MirrorCopyAngle(
  4038.         [in] double X, // X coordinate to mirror to.
  4039.         [in] double Y, // Y coordinate to mirror to.
  4040.         [in] double Z, // Z coordinate to mirror to.
  4041.         [in] double Angle, // Angle of mirror.
  4042.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  4043.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  4044.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  4045.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  4046.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  4047.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  4048.         );
  4049.  
  4050.         /**
  4051.          * Scales the Graphic object.
  4052.          *
  4053.          * @see TCADAPI TCWSelectionScale function.
  4054.          */
  4055.     [
  4056.          helpcontext(0x10030034)
  4057.         ,helpstring("Scales the Graphic object.")
  4058.     ]
  4059.     HRESULT  Scale(
  4060.         [in] double XScale, // X scale factor.
  4061.         [in] double YScale, // Y scale factor.
  4062.         [in] double ZScale, // Z scale factor.
  4063.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  4064.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  4065.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  4066.         [out, retval] IMatrix** prop // The matrix that was calculated.
  4067.         );
  4068.  
  4069.         /**
  4070.          * NOTE: The only reason RotateAxis and RotateAbsolute are defined the way they are
  4071.          * is because of a MIDL bug that prevents using more than a few double parameters...
  4072.          * <p>
  4073.          * Rotates the Graphic object.
  4074.          *
  4075.          * @see TCADAPI TCWSelectionRotate function.
  4076.          */
  4077.     [
  4078.          helpcontext(0x10030035)
  4079.         ,helpstring("Rotates the Graphic object.")
  4080.     ]
  4081.     HRESULT  RotateAxis(
  4082.         [in] double Angle, // Angle of rotation in radians.
  4083.         [in, optional] VARIANT* XAxis, // X coordinate of axis direction.
  4084.         [in, optional] VARIANT* YAxis, // Y coordinate of axis direction.
  4085.         [in, optional] VARIANT* ZAxis, // Z coordinate of axis direction.
  4086.         [in, optional] VARIANT* X, // X coordinate of the rotation center.
  4087.         [in, optional] VARIANT* Y, // Y coordinate of the rotation center.
  4088.         [in, optional] VARIANT* Z, // Z coordinate of the rotation center.
  4089.         [out, retval] IMatrix** prop // The matrix that was calculated.
  4090.         );
  4091.  
  4092.         /**
  4093.          * Rotates the Graphic object.
  4094.          *
  4095.          * @see TCADAPI TCWSelectionRotate function.
  4096.          */
  4097.     [
  4098.          helpcontext(0x10030036)
  4099.         ,helpstring("Rotates the Graphic object.")
  4100.     ]
  4101.     HRESULT  RotateAbsolute(
  4102.         [in] VARIANT* XTo, // X coordinate of the point to rotate to.
  4103.         [in] VARIANT* YTo, // Y coordinate of the point to rotate to.
  4104.         [in] VARIANT* ZTo, // Z coordinate of the point to rotate to.
  4105.         [in] VARIANT* XFrom, // X coordinate of the point to rotate from.
  4106.         [in] VARIANT* YFrom, // Y coordinate of the point to rotate from.
  4107.         [in] VARIANT* ZFrom, // Z coordinate of the point to rotate from.
  4108.         [in, optional] VARIANT* XRef, // X coordinate of the rotation center.
  4109.         [in, optional] VARIANT* YRef, // Y coordinate of the rotation center.
  4110.         [in, optional] VARIANT* ZRef, // Z coordinate of the rotation center.
  4111.         [out, retval] IMatrix** prop // The matrix that was calculated.
  4112.         );
  4113.  
  4114.         /**
  4115.          * Moves the Graphic object to a new location.
  4116.          *
  4117.          * @see TCADAPI TCWSelectionMove function.
  4118.          */
  4119.     [
  4120.          helpcontext(0x10030037)
  4121.         ,helpstring("Moves the Graphic object to a new location.")
  4122.     ]
  4123.     HRESULT  MoveAbsolute(
  4124.         [in] double X, // X coordinate to move to.
  4125.         [in] double Y, // Y coordinate to move to.
  4126.         [in] double Z, // Z coordinate to move to.
  4127.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  4128.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  4129.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  4130.         [out, retval] IMatrix** prop // The matrix that was calculated.
  4131.         );
  4132.  
  4133.         /**
  4134.          * Moves the Graphic object by a specified offset.
  4135.          *
  4136.          * @see TCADAPI TCWSelectionMove function.
  4137.          */
  4138.     [
  4139.          helpcontext(0x10030038)
  4140.         ,helpstring("Moves the Graphic object by a specified offset.")
  4141.     ]
  4142.     HRESULT  MoveRelative(
  4143.         [in] double X, // X offset.
  4144.         [in] double Y, // Y offset.
  4145.         [in] double Z, // Z offset.
  4146.         [out, retval] IMatrix** prop // The matrix that was calculated.
  4147.         );
  4148.  
  4149.         /**
  4150.          * Transforms the Graphic object.
  4151.          */
  4152.     [
  4153.          helpcontext(0x10030039)
  4154.         ,helpstring("Transforms the Graphic object.")
  4155.     ]
  4156.     HRESULT  Transform(
  4157.         [in] IMatrix* Transform // The matrix to perform transformation.
  4158.         );
  4159.  
  4160.         ////////////////////// Miscellaneous Edit Methods \\\\\\\\\\\\\\\\\\\\
  4161.  
  4162.         /**
  4163.          * Brings the Graphic object to the front.
  4164.          *
  4165.          * @see TCADAPI TCWBringToFront function.
  4166.          */
  4167.     [
  4168.          helpcontext(0x1003003A)
  4169.         ,helpstring("Brings the Graphic object to the front.")
  4170.     ]
  4171.     HRESULT  BringToFront(
  4172.         );
  4173.  
  4174.         /**
  4175.          * Sends the Graphic object to the back.
  4176.          *
  4177.          * @see TCADAPI TCWSendToBack function.
  4178.          */
  4179.     [
  4180.          helpcontext(0x1003003B)
  4181.         ,helpstring("Sends the Graphic object to the back.")
  4182.     ]
  4183.     HRESULT  SendToBack(
  4184.         );
  4185.  
  4186.         ////////////////////// New stuff added here \\\\\\\\\\\\\\\\\\\\
  4187.  
  4188.         /**
  4189.          * Returns the Graphic object's type, as an enumerated value.
  4190.          */
  4191.         [
  4192.              propget
  4193.             ,helpcontext(0x1003003C)
  4194.             ,helpstring("Returns the Graphic object's type, as an enumerated value.")
  4195.         ]
  4196.         HRESULT  TypeByValue(
  4197.             [out, retval] ImsiGraphicType* prop // The Graphic object's type.
  4198.             );
  4199.  
  4200.         /**
  4201.          * Returns the distance to the specified Graphic object.
  4202.          */
  4203.         [
  4204.              helpcontext(0x1003003D)
  4205.             ,helpstring("Returns the distance to the specified Graphic object.")
  4206.         ]
  4207.         HRESULT  GetDistance(
  4208.             [in] double X, // The x coordinate of the point to be tested.
  4209.             [in] double Y, // The y coordinate of the point to be tested.
  4210.             [in] double Z, // The z coordinate of the point to be tested.
  4211.             [in, out, optional] VARIANT *ClosestVertex, // The closest vertex on the Graphic object.
  4212.             [in, out, optional] VARIANT *ClosestChild, // The closest child Graphic object.
  4213.             [out, retval] double *prop // The distance from (X, Y, Z) to the closest vertex.
  4214.             );
  4215.  
  4216.         /**
  4217.          * Returns arrays of face data for a 3d surface Graphic object.
  4218.          */
  4219.         [
  4220.              helpcontext(0x1003003E)
  4221.             ,helpstring("Returns arrays of face data for a 3d surface Graphic object.")
  4222.         ]
  4223.         HRESULT  GetFaceData(
  4224.             [in, out] VARIANT* VertexArray, // An array of (X, Y, Z) position values
  4225.             [in, out] VARIANT* VertexIndices, // An array of indices into the VertexArray
  4226.             [in, out] VARIANT* EdgeFlags // An array of flags
  4227.             );
  4228.  
  4229.         /**
  4230.          * Generates a bounding polygon array to use in drag operations.
  4231.          *
  4232.          * @see View::DragOutline
  4233.          */
  4234.     [
  4235.          helpcontext(0x1003003F)
  4236.         ,helpstring("Generates a bounding polygon array to use in drag operations.")
  4237.     ]
  4238.     HRESULT  CreateDragOutline(
  4239.         [in, out] VARIANT* Coords // Array of (X, Y, Z) polygon coordinates.
  4240.         );
  4241.  
  4242.         /**
  4243.          * Returns the Graphic object's Attributes collection.
  4244.          */
  4245.         [
  4246.              propget
  4247.             ,helpcontext(0x10030040)
  4248.             ,helpstring("Returns the Graphic object's Attributes collection.")
  4249.         ]
  4250.         HRESULT  Attributes(
  4251.             [out, retval] Properties** prop // The Attributes collection.
  4252.             );
  4253.  
  4254.         /**
  4255.          * Returns the Block object referenced by an Insert.
  4256.          */
  4257.         [
  4258.              propget
  4259.             ,helpcontext(0x10030041)
  4260.             ,helpstring("Returns the Block object referenced by an Insert.")
  4261.         ]
  4262.         HRESULT  Block(
  4263.             [out, retval] Block** prop // The Block object.
  4264.             );
  4265.  
  4266.         /**
  4267.          * Returns Arc parameter information.
  4268.          * Data returned in array is as follows:
  4269.          * param[0]  X coordinate of center point
  4270.          * param[1]  Y coordinate of center point
  4271.          * param[2]  Z coordinate of center point
  4272.          * param[3]  X coordinate of major axis
  4273.          * param[4]  Y coordinate of major axis
  4274.          * param[5]  Z coordinate of major axis
  4275.          * param[6]  ratio of minor/major axes (1.0 = circle)
  4276.          * param[7]  start angle in radians
  4277.          * param[8]  end angle in radians
  4278.          * param[9]  0.0 if open arc, 1.0 if closed (ellipse or circle)
  4279.          */
  4280.         [
  4281.              helpcontext(0x10030042)
  4282.             ,helpstring("Returns Arc parameter information.")
  4283.         ]
  4284.         HRESULT  GetArcData(
  4285.             [in, out] VARIANT* varArcData // Array of 10 double values
  4286.             );
  4287.  
  4288.         /**
  4289.          * Forces an update of the Graphic object's properties.
  4290.          */
  4291.         [
  4292.              helpcontext(0x10030043)
  4293.             ,helpstring("Forces an update of the Graphic object's properties.")
  4294.         ]
  4295.         HRESULT  Update(
  4296.             );
  4297.  
  4298.         /**
  4299.          * Returns the Block object referenced by an Insert.
  4300.          */
  4301.         [
  4302.              propput
  4303.             ,helpcontext(0x10030041)
  4304.             ,helpstring("Returns the Block object referenced by an Insert.")
  4305.         ]
  4306.         HRESULT  Block(
  4307.             [in] Block* prop // The Block object.
  4308.             );
  4309.  
  4310.  
  4311.         /**
  4312.          * Returns the Graphic CS as Matrix object
  4313.          */
  4314.         [
  4315.              propget
  4316.             ,helpcontext(0x10030044)
  4317.             ,helpstring("Returns the Graphic CS as Matrix object .")
  4318.         ]
  4319.         HRESULT  UCS(
  4320.             [out, retval] IMatrix** prop // The Block object.
  4321.             );
  4322.         /**
  4323.          * Returns the Graphic CS as Matrix object
  4324.          */
  4325.         [
  4326.              propput
  4327.             ,helpcontext(0x10030044)
  4328.             ,helpstring("Set the Graphic CS as Matrix object .")
  4329.         ]
  4330.         HRESULT  UCS(
  4331.             [in] IMatrix* prop // The Matrix object.
  4332.             );
  4333.  
  4334.         /**
  4335.          * Returns dimension size for a 3d surface (3DMesh) Graphic object.
  4336.          */
  4337.         [
  4338.              helpcontext(0x10030045)
  4339.             ,helpstring("dimension size for a 3DMesh Graphic object.")
  4340.         ]
  4341.         HRESULT  GetFaceDimension(
  4342.             [in, out] long* M,  
  4343.             [in, out] long* N,
  4344.             [in, out] long* facetCount
  4345.             );
  4346.  
  4347.         /**
  4348.          * Returns surface object for imsiSurface Graphic object.
  4349.          */
  4350.         [
  4351.              propget
  4352.             ,helpcontext(0x10030046)
  4353.             ,helpstring("Returns surface object for imsiSurface Graphic object..")
  4354.         ]
  4355.         HRESULT  Surface(
  4356.                 [out, retval] IDispatch** prop
  4357.             );
  4358.     
  4359.         /**
  4360.          * True if the object is selected.
  4361.          */
  4362.         [
  4363.              propget
  4364.             ,helpcontext(0x10030047)
  4365.             ,helpstring("True if the object is visible.")
  4366.         ]
  4367.         HRESULT  Selected(
  4368.             [out, retval] IMSI_BOOL* prop // True if the object is visible.
  4369.             );
  4370.  
  4371.         /**
  4372.          * True if the object is selected.
  4373.          */
  4374.         [
  4375.              propput
  4376.             ,helpcontext(0x10030047)
  4377.             ,helpstring("True if the object is selected.")
  4378.         ]
  4379.         HRESULT  Selected(
  4380.             [in] IMSI_BOOL prop // True if the object is visible.
  4381.             );
  4382.  
  4383.     
  4384.         /**
  4385.          * Returns Graphic's reference point.
  4386.          */
  4387.         [
  4388.              propget
  4389.             ,helpcontext(0x10030048)
  4390.             ,helpstring("Returns Graphic's reference point.")
  4391.         ]
  4392.         HRESULT  ReferencePoint(
  4393.              [in, optional]    VARIANT* bUseWorldCS
  4394.             ,[out, retval] IVertex** prop // True if the object is visible.
  4395.             );
  4396.     
  4397.         //////////////////////////////////// v9 properties \\\\\\\\\\\\\\\\\\\\\\/
  4398.         /**
  4399.          * Returns the Graphic CS as Matrix object
  4400.          */
  4401.         [
  4402.              propget
  4403.             ,helpcontext(0x10030049)
  4404.             ,helpstring("Returns the Graphic CS as object .")
  4405.         ]
  4406.         HRESULT  CS(
  4407.             [out, retval] IDispatch** prop // The CS (Matrix) object.
  4408.             );
  4409.  
  4410.         //////////////////////////////////// v9 methods \\\\\\\\\\\\\\\\\\\\\\/
  4411.         /**
  4412.          * Duplicates the object and returns a reference to the new copy not belonging to any Graphics collection.
  4413.          */
  4414.         [
  4415.             ,helpcontext(0x1003004A)
  4416.             ,helpstring("Duplicates the object and returns a reference to the new copy not belonging to any Graphics collection.")
  4417.         ]
  4418.         HRESULT  Clone(
  4419.              [in, optional]    VARIANT* pvarFlags
  4420.             ,[out, retval]    IGraphic** prop // The Graphic object.
  4421.             );
  4422.  
  4423.         [
  4424.              propget
  4425.             ,helpcontext(0x1003004B)
  4426.             ,helpstring("True if Graphic's CS shouldn't be changed while transformation")
  4427.         ]
  4428.         HRESULT  FixCS(
  4429.              [out, retval]    IMSI_BOOL*    prop
  4430.             );
  4431.  
  4432.         [
  4433.              propput
  4434.             ,helpcontext(0x1003004B)
  4435.             ,helpstring("True if Graphic's CS shouldn't be changed while transformation")
  4436.         ]
  4437.         HRESULT  FixCS(
  4438.              [in]            IMSI_BOOL    prop
  4439.             );
  4440.     };
  4441.  
  4442.  
  4443.  
  4444.     /**
  4445.      * The collection of Graphic objects contained by a Drawing object or a Graphic object.
  4446.      * Every Graphic object owns a Graphics collection, allowing for a hierarchy
  4447.      * of Graphic objects.
  4448.      */
  4449.     [
  4450.          object
  4451.         ,uuid(6A48110A-E531-11CF-A115-00A024158DAF)
  4452.         ,oleautomation
  4453.         ,dual
  4454.         ,helpcontext(0x10040000)
  4455.         ,helpstring("A collection of Graphic objects.")
  4456.     ]
  4457.     interface Graphics : IDispatch
  4458.     {
  4459.  
  4460.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  4461.  
  4462.         /**
  4463.          * Returns an Application object that represents the owner of the specified object.
  4464.          */
  4465.         [
  4466.              propget
  4467.             ,helpcontext(0x10040001)
  4468.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  4469.         ]
  4470.         HRESULT  Application(
  4471.             [out, retval] IApplication** prop // The Application object.
  4472.             );
  4473.  
  4474.         /**
  4475.          * Returns the number of items in the collection.
  4476.          */
  4477.         [
  4478.              propget
  4479.             ,helpcontext(0x10040002)
  4480.             ,helpstring("Returns the number of items in the collection.")
  4481.         ]
  4482.         HRESULT  Count(
  4483.             [out, retval] long* prop // The number of items.
  4484.             );
  4485.  
  4486.         /**
  4487.          * Returns the Drawing object that owns the object.
  4488.          */
  4489.         [
  4490.              propget
  4491.             ,helpcontext(0x10040003)
  4492.             ,helpstring("Returns the Drawing object that owns the object.")
  4493.         ]
  4494.         HRESULT  Drawing(
  4495.             [out, retval] IDrawing** prop // The Drawing object.
  4496.             );
  4497.  
  4498.         /**
  4499.          * Returns part of a collection.
  4500.          */
  4501.         [
  4502.              propget
  4503.             ,id(DISPID_VALUE)
  4504.             ,helpcontext(0x10040004)
  4505.         ,
  4506.         helpstring("Returns part of a collection.")]
  4507.         HRESULT  Item(
  4508.             [in] VARIANT* Index, // Index of item to return.
  4509.             [out, retval] IGraphic** prop // The item.
  4510.             );
  4511.  
  4512.         /**
  4513.          * Returns the parent object for the specified object.
  4514.          */
  4515.         [
  4516.              propget
  4517.             ,helpcontext(0x10040005)
  4518.             ,helpstring("Returns the parent object for the specified object.")
  4519.         ]
  4520.         HRESULT  Parent(
  4521.             [out, retval] IDispatch** prop // The parent object.
  4522.             );
  4523.  
  4524.         /**
  4525.          * Creates an enumeration object.
  4526.          */
  4527.         [
  4528.              propget
  4529.             ,restricted
  4530.             ,id(DISPID_NEWENUM)
  4531.             ,helpcontext(0x10040006)
  4532.             ,helpstring("Private.  Creates an enumeration object.")
  4533.         ]
  4534.         HRESULT  _NewEnum(
  4535.             [out, retval] IUnknown** prop // The enumeration object.
  4536.             );
  4537.  
  4538.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  4539.  
  4540. #ifndef METHOD_OVERFLOW_BUG
  4541.  
  4542.         /**
  4543.          * Applies a Style object to the contents of the collection.
  4544.          */
  4545.         [
  4546.              helpcontext(0x10040007)
  4547.             ,helpstring("Applies a Style object to the contents of the collection.")
  4548.             ,restricted, hidden
  4549.         ]
  4550.         HRESULT  ApplyStyle(
  4551.             [in] Style* StyleToApply // The Style object to apply.
  4552.             );
  4553.  
  4554.         /**
  4555.          * Checks the spelling of all the text Graphic object's in the collection.
  4556.          */
  4557.         [
  4558.              helpcontext(0x10040008)
  4559.             ,helpstring("Checks the spelling of all the text Graphic object's in the collection.")
  4560.             ,restricted, hidden
  4561.         ]
  4562.         HRESULT  CheckSpelling(
  4563.         [in, optional] VARIANT* CustomDictionary, // The name of a custom dictionary.
  4564.         [in, optional] VARIANT* IgnoreUppercase, // True to ignore case.
  4565.         [in, optional] VARIANT* AlwaysSuggest, // True to suggest corrections.
  4566.         [in, optional] VARIANT* CustomDictionary2, // The name of a custom dictionary.
  4567.         [in, optional] VARIANT* CustomDictionary3, // The name of a custom dictionary.
  4568.         [in, optional] VARIANT* CustomDictionary4, // The name of a custom dictionary.
  4569.         [in, optional] VARIANT* CustomDictionary5, // The name of a custom dictionary.
  4570.         [in, optional] VARIANT* CustomDictionary6, // The name of a custom dictionary.
  4571.         [in, optional] VARIANT* CustomDictionary7, // The name of a custom dictionary.
  4572.         [in, optional] VARIANT* CustomDictionary8, // The name of a custom dictionary.
  4573.         [in, optional] VARIANT* CustomDictionary9, // The name of a custom dictionary.
  4574.         [in, optional] VARIANT* CustomDictionary10 // The name of a custom dictionary.
  4575.         );
  4576.  
  4577.         /**
  4578.          * Adds a hatch pattern to the collection from the Graphic objects in the collection.
  4579.          *
  4580.          * @see TCADAPI TCWCreateHatch function
  4581.          */
  4582.         [
  4583.              helpcontext(0x10040009)
  4584.             ,helpstring("Adds a hatch pattern to the collection from the Graphic objects in the collection.")
  4585.         ]
  4586.         HRESULT  AddHatch(
  4587.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4588.             );
  4589.  
  4590.         /**
  4591.          * Creates a Style object based on the contents of the collection.
  4592.          */
  4593.         [
  4594.              helpcontext(0x1004000A)
  4595.             ,helpstring("Creates a Style object based on the contents of the collection.")
  4596.             ,restricted, hidden
  4597.         ]
  4598.         HRESULT  CreateStyle(
  4599.             [in] Style* BasedOn, // The style to base the new Style object on.
  4600.             [out, retval] Style** prop // The newly created Style object.
  4601.             );
  4602.  
  4603.         /**
  4604.          * Creates and adds an OLE object to the collection.
  4605.          */
  4606.         [
  4607.              helpcontext(0x1004000B)
  4608.             ,helpstring("Creates and adds an OLE object to the collection.")
  4609.             ,restricted, hidden
  4610.         ]
  4611.         HRESULT  AddObject(
  4612.             [in, optional] VARIANT* ClassType, // Name of data format to paste.
  4613.             [in, optional] VARIANT* FileName, // Name of file to create object or link from.
  4614.             [in, optional] VARIANT* LinkToFile, // True if object is a link.
  4615.             [in, optional] VARIANT* DisplayAsIcon, // True to display as icon.
  4616.             [in, optional] VARIANT* IconFileName, // File containing icon.
  4617.             [in, optional] VARIANT* IconIndex, // Index of icon to use if displaying as icon.
  4618.             [in, optional] VARIANT* IconLabel, // Label to display if displaying as icon.
  4619.             [in, optional] VARIANT* X, // X coordinate of center of object.
  4620.             [in, optional] VARIANT* Y, // Y coordinate of center of object.
  4621.             [in, optional] VARIANT* Z, // Z coordinate of center of object.
  4622.             [in, optional] VARIANT* Width, // Width of object.
  4623.             [in, optional] VARIANT* Height, // Height of object.
  4624.             [in, optional] VARIANT* Anchor, // TODO: What's this for?
  4625.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4626.             );
  4627.  
  4628.         /**
  4629.          * Creates and adds a single line segment to the collection.
  4630.          */
  4631.         [
  4632.              helpcontext(0x1004000C)
  4633.             ,helpstring("Creates and adds a single line segment to the collection.")
  4634.             ,restricted, hidden
  4635.         ]
  4636.         HRESULT  AddLineTanArcPoint(
  4637.             [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  4638.             [in] double X0, // X coordinate on arc for line endpoint.
  4639.             [in] double Y0, // Y coordinate on arc for line endpoint.
  4640.             [in] double Z0, // Z coordinate on arc for line endpoint.
  4641.             [in] double length, // length of tangent line.
  4642.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4643.             );
  4644.  
  4645.         /**
  4646.          * Creates and adds a single line segment to the collection.
  4647.          */
  4648.         [
  4649.              helpcontext(0x1004000D)
  4650.             ,helpstring("Creates and adds a single line segment to the collection.")
  4651.             ,restricted, hidden
  4652.         ]
  4653.         HRESULT  AddLineTanToArc(
  4654.             [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  4655.             [in] double X0, // X coordinate on arc for the line's first endpoint.
  4656.             [in] double Y0, // Y coordinate on arc for the line's first endpoint.
  4657.             [in] double Z0, // Z coordinate on arc for the line's first endpoint.
  4658.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4659.             );
  4660.  
  4661.         /**
  4662.          * Creates and adds a single line segment to the collection.
  4663.          */
  4664.         [
  4665.              helpcontext(0x1004000E)
  4666.             ,helpstring("Creates and adds a single line segment to the collection.")
  4667.             ,restricted, hidden
  4668.         ]
  4669.         HRESULT  AddLineTanFromArc(
  4670.             [in] IGraphic* TangentFrom, // Arc to draw line tangent from.
  4671.             [in] double X0, // X coordinate on arc for the line's second endpoint.
  4672.             [in] double Y0, // Y coordinate on arc for the line's second endpoint.
  4673.             [in] double Z0, // Z coordinate on arc for the line's second endpoint.
  4674.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4675.             );
  4676.  
  4677.         /**
  4678.          * Creates and adds a single line segment to the collection.
  4679.          */
  4680.         [
  4681.              helpcontext(0x1004000F)
  4682.             ,helpstring("Creates and adds a single line segment to the collection.")
  4683.             ,restricted, hidden
  4684.         ]
  4685.         HRESULT  AddLineTan2Arcs(
  4686.             [in] IGraphic* Arc1, // First arc.
  4687.             [in] IGraphic* Arc2, // Second arc.
  4688.             [in] IMSI_BOOL CounterClockwise, // True if tangent direction is counterclockwise.
  4689.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4690.             );
  4691.  
  4692.         /**
  4693.          * Creates and adds a multi segment leader (callout) line to the collection.
  4694.          * The returned Graphic object contains only a beginning vertex.  The user must
  4695.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  4696.          * and a Graphic.Finish call to complete the Graphic object.
  4697.          */
  4698.         [
  4699.              helpcontext(0x10040010)
  4700.             ,helpstring("Creates and adds a multi segment leader (callout) line to the collection.")
  4701.             ,restricted, hidden
  4702.         ]
  4703.         HRESULT  AddDimensionLeader(
  4704.             [in] double X0, // X coordinate of the first endpoint.
  4705.             [in] double Y0, // Y coordinate of the first endpoint.
  4706.             [in] double Z0, // Z coordinate of the first endpoint.
  4707.             [in, optional] BSTR Text, // The text for the leader.
  4708.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4709.             );
  4710.  
  4711.         /**
  4712.          * Creates and adds a baseline dimension to the collection.
  4713.          * The returned Graphic object contains only a beginning vertex.  The user must
  4714.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  4715.          * and a Graphic.Finish call to complete the Graphic object.
  4716.          */
  4717.         [
  4718.              helpcontext(0x10040011)
  4719.             ,helpstring("Creates and adds a WHATEVER to the collection.")
  4720.             ,restricted, hidden
  4721.         ]
  4722.         HRESULT  AddDimensionBaseline(
  4723.             [in] IGraphic* AddTo, // dimension line to add baseline dimension to.
  4724.             [in] double X0, // X coordinate of second extension line.
  4725.             [in] double Y0, // Y coordinate of second extension line.
  4726.             [in] double Z0, // Z coordinate of second extension line.
  4727.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4728.             );
  4729.  
  4730.         /**
  4731.          * Creates and adds a continuous dimension to the collection.
  4732.          * The returned Graphic object contains only a beginning vertex.  The user must
  4733.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  4734.          * and a Graphic.Finish call to complete the Graphic object.
  4735.          */
  4736.         [
  4737.              helpcontext(0x10040012)
  4738.             ,helpstring("Creates and adds a continuous dimension to the collection.")
  4739.             ,restricted, hidden
  4740.         ]
  4741.         HRESULT  AddDimensionContinuous(
  4742.             [in] IGraphic* AddTo, // dimension line to add continuous dimension to.
  4743.             [in] double X0, // X coordinate of second extension line.
  4744.             [in] double Y0, // Y coordinate of second extension line.
  4745.             [in] double Z0, // Z coordinate of second extension line.
  4746.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4747.             );
  4748.  
  4749.         /**
  4750.          * Creates and adds a single segment double line to the collection.
  4751.          *
  4752.          * @see TCADAPI TCWDoubleLineSingle function
  4753.          */
  4754.         [
  4755.              helpcontext(0x10040013)
  4756.             ,helpstring("Creates and adds a single segment double line to the collection.")
  4757.             ,restricted, hidden
  4758.         ]
  4759.         HRESULT  AddDoubleLineSingle(
  4760.             [in] double X0, // X coordinate of the first point.
  4761.             [in] double Y0, // Y coordinate of the first point.
  4762.             [in] double Z0, // Z coordinate of the first point.
  4763.             [in] double X1, // X coordinate of the second point.
  4764.             [in] double Y1, // Y coordinate of the second point.
  4765.             [in] double Z1, // Z coordinate of the second point.
  4766.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4767.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4768.             );
  4769.  
  4770.         /**
  4771.          * Creates and adds a double regular polygon to the collection.
  4772.          *
  4773.          * @see TCADAPI TCWDoubleLinePolygon function
  4774.          */
  4775.         [
  4776.              helpcontext(0x10040014)
  4777.             ,helpstring("Creates and adds a double regular polygon to the collection.")
  4778.             ,restricted, hidden
  4779.         ]
  4780.         HRESULT  AddDoubleLinePolygon(
  4781.             [in] double X0, // X coordinate of the center point.
  4782.             [in] double Y0, // Y coordinate of the center point.
  4783.             [in] double Z0, // Z coordinate of the center point.
  4784.             [in] double X1, // X coordinate of the corner point.
  4785.             [in] double Y1, // Y coordinate of the corner point.
  4786.             [in] double Z1, // Z coordinate of the corner point.
  4787.             [in] long Sides, // Number of sides.
  4788.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4789.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4790.             );
  4791.  
  4792.             /**
  4793.              * Creates and adds a double rectangle to the collection.
  4794.              *
  4795.              * @see TCADAPI TCWDoubleLineRectangle function
  4796.              */
  4797.         [
  4798.              helpcontext(0x10040015)
  4799.             ,helpstring("Creates and adds a double rectangle to the collection.")
  4800.             ,restricted, hidden
  4801.         ]
  4802.         HRESULT  AddDoubleLineRectangle(
  4803.             [in] double X0, // X coordinate of the upper left corner.
  4804.             [in] double Y0, // Y coordinate of the upper left corner.
  4805.             [in] double Z0, // Z coordinate of the upper left corner.
  4806.             [in] double X1, // X coordinate of the lower right corner.
  4807.             [in] double Y1, // Y coorindate of the lower right corner.
  4808.             [in] double Z1, // Z coorindate of the lower right corner.
  4809.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4810.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4811.             );
  4812.  
  4813.             /**
  4814.              * Creates and adds a double rotated rectangle to the collection.
  4815.              *
  4816.              * @see TCADAPI TCWDoubleLineRotatedRectangle function
  4817.              */
  4818.         [
  4819.              helpcontext(0x10040016)
  4820.             ,helpstring("Creates and adds a double rotated rectangle to the collection.")
  4821.             ,restricted, hidden
  4822.         ]
  4823.         HRESULT  AddDoubleLineRotatedRectangle(
  4824.             [in] double X0, // X coordinate of the upper left corner.
  4825.             [in] double Y0, // Y coordinate of the upper left corner.
  4826.             [in] double Z0, // Z coordinate of the upper left corner.
  4827.             [in] double X1, // X coordinate of the lower right corner.
  4828.             [in] double Y1, // Y coorindate of the lower right corner.
  4829.             [in] double Z1, // Z coorindate of the lower right corner.
  4830.             [in] double Angle, // Angle of rotation in radians.
  4831.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4832.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4833.             );
  4834.  
  4835.             /**
  4836.              * Creates and adds a double line to the collection.
  4837.              *
  4838.              * @see TCADAPI TCWDoubleLinePerpendicular function
  4839.              */
  4840.         [
  4841.              helpcontext(0x10040017)
  4842.             ,helpstring("Creates and adds a double line to the collection.")
  4843.             ,restricted, hidden
  4844.         ]
  4845.         HRESULT  AddDoubleLinePerpendicular(
  4846.             [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  4847.             [in] double X0, // X coordinate of the point on the existing line.
  4848.             [in] double Y0, // Y coordinate of the point on the existing line.
  4849.             [in] double Z0, // Z coordinate of the point on the existing line.
  4850.             [in] double X1, // X coordinate of the second point on the new line.
  4851.             [in] double Y1, // Y coordinate of the second point on the new line.
  4852.             [in] double Z1, // Z coordinate of the second point on the new line.
  4853.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4854.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4855.             );
  4856.  
  4857.             /**
  4858.              * Creates and adds a multiple segment double line to the collection.
  4859.              * The returned Graphic object contains only a beginning vertex.  The user must
  4860.              * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  4861.              * and a Graphic.Finish call to complete the Graphic object.
  4862.              *
  4863.              * @see TCADAPI TCWDoubleLineMultiline function
  4864.              */
  4865.         [
  4866.              helpcontext(0x10040018)
  4867.             ,helpstring("Creates and adds a multiple segment double line to the collection.")
  4868.             ,restricted, hidden
  4869.         ]
  4870.         HRESULT  AddDoubleLineMultiline(
  4871.             [in] double X0, // X coordinate of first endpoint.
  4872.             [in] double Y0, // Y coordinate of first endpoint.
  4873.             [in] double Z0, // Z coordinate of first endpoint.
  4874.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4875.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4876.             );
  4877.  
  4878.             /**
  4879.              * Creates and adds a double irregular polygon to the collection.
  4880.              * The returned Graphic object contains only a beginning vertex.  The user must
  4881.              * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  4882.              * and a Graphic.Close call to complete the Graphic object.
  4883.              *
  4884.              * @see TCADAPI TCWDoubleLineIrregularPolygon function
  4885.              */
  4886.         [
  4887.              helpcontext(0x10040019)
  4888.             ,helpstring("Creates and adds a double irregular polygon to the collection.")
  4889.             ,restricted, hidden
  4890.         ]
  4891.         HRESULT  AddDoubleLineIrregularPolygon(
  4892.             [in] double X0, // X coordinate of first endpoint.
  4893.             [in] double Y0, // Y coordinate of first endpoint.
  4894.             [in] double Z0, // Z coordinate of first endpoint.
  4895.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4896.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4897.             );
  4898.  
  4899.             /**
  4900.              * Creates and adds a double line to the collection.
  4901.              *
  4902.              * @see TCADAPI TCWDoubleLineParallel function
  4903.              */
  4904.         [
  4905.              helpcontext(0x1004001A)
  4906.             ,helpstring("Creates and adds a double line to the collection.")
  4907.             ,restricted, hidden
  4908.         ]
  4909.         HRESULT  AddDoubleLineParallel(
  4910.             [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  4911.             [in] double X0, // X coordinate of the new line.
  4912.             [in] double Y0, // Y coordinate of the new line.
  4913.             [in] double Z0, // Z coordinate of the new line.
  4914.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4915.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4916.             );
  4917.  
  4918.             /**
  4919.              * Creates and adds a circle to the collection.
  4920.              */
  4921.         [
  4922.              helpcontext(0x1004001B)
  4923.             ,helpstring("Creates and adds a circle to the collection.")
  4924.             ,restricted, hidden
  4925.         ]
  4926.         HRESULT  AddCircleTanToArc(
  4927.             [in] IGraphic* TangentTo, // Arc or circle to draw new circle tangent to.
  4928.             [in] double X0, // X coordinate of the new circle's center point.
  4929.             [in] double Y0, // Y coordinate of the new circle's center point.
  4930.             [in] double Z0, // Z coordinate of the new circle's center point.
  4931.             [in] double X1, // X coordinate of the new circle's radius point.
  4932.             [in] double Y1, // Y coordinate of the new circle's radius point.
  4933.             [in] double Z1, // Z coordinate of the new circle's radius point.
  4934.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4935.             );
  4936.  
  4937.             /**
  4938.              * Creates and adds a circle to the collection.
  4939.              */
  4940.         [
  4941.              helpcontext(0x1004001C)
  4942.             ,helpstring("Creates and adds a circle to the collection.")
  4943.             ,restricted, hidden
  4944.         ]
  4945.         HRESULT  AddCircleTanToLine(
  4946.             [in] IGraphic* TangentTo, // Line to draw new circle tangent to.
  4947.             [in] double X0, // X coordinate of the new circle's center point.
  4948.             [in] double Y0, // Y coordinate of the new circle's center point.
  4949.             [in] double Z0, // Z coordinate of the new circle's center point.
  4950.             [in] double X1, // X coordinate of the new circle's radius point.
  4951.             [in] double Y1, // Y coordinate of the new circle's radius point.
  4952.             [in] double Z1, // Z coordinate of the new circle's radius point.
  4953.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4954.             );
  4955.  
  4956.             /**
  4957.              * Creates and adds a circle to the collection.
  4958.              */
  4959.         [
  4960.              helpcontext(0x1004001D)
  4961.             ,helpstring("Creates and adds a circle to the collection.")
  4962.             ,restricted, hidden
  4963.         ]
  4964.         HRESULT  AddCircleTan3Arcs(
  4965.             [in] IGraphic* Arc1, // First arc or circle.
  4966.             [in] IGraphic* Arc2, // Second arc or circle.
  4967.             [in] IGraphic* Arc3, // Third arc or circle.
  4968.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4969.             );
  4970.  
  4971.             /**
  4972.              * Creates and adds an arc to the collection.
  4973.              */
  4974.         [
  4975.              helpcontext(0x1004001E)
  4976.             ,helpstring("Creates and adds an arc to the collection.")
  4977.             ,restricted, hidden
  4978.         ]
  4979.         HRESULT  AddArcTanToArc(
  4980.             [in] IGraphic* TangentTo, // Arc or circle to draw arc tangent to.
  4981.             [in] double X0, // X coordinate of new arc's radius point.
  4982.             [in] double Y0, // Y coordinate of new arc's radius point.
  4983.             [in] double Z0, // Z coordinate of new arc's radius ponit.
  4984.             [in] double X1, // X coordinate of point on existing arc.
  4985.             [in] double Y1, // Y coordinate of point on existing arc.
  4986.             [in] double Z1, // Z coordinate of ponit on existing arc.
  4987.             [in] double StartAngle, // Starting angle in radians.
  4988.             [in] double EndAngle, // Ending angle in radians.
  4989.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4990.             );
  4991.  
  4992.             /**
  4993.              * Creates and adds an arc to the collection.
  4994.              */
  4995.         [
  4996.              helpcontext(0x1004001F)
  4997.             ,helpstring("Creates and adds an arc to the collection.")
  4998.             ,restricted, hidden
  4999.         ]
  5000.         HRESULT  AddArcTanToLine(
  5001.             [in] IGraphic* TangentTo, // Line to draw arc tangent to.
  5002.             [in] double X0, // X coordinate of new arc's radius point.
  5003.             [in] double Y0, // Y coordinate of new arc's radius point.
  5004.             [in] double Z0, // Z coordinate of new arc's radius ponit.
  5005.             [in] double X1, // X coordinate of point on existing line.
  5006.             [in] double Y1, // Y coordinate of point on existing line.
  5007.             [in] double Z1, // Z coordinate of ponit on existing line.
  5008.             [in] double StartAngle, // Starting angle in radians.
  5009.             [in] double EndAngle, // Ending angle in radians.
  5010.             [out, retval] IGraphic** prop // The newly created Graphic object.
  5011.             );
  5012.  
  5013.             /**
  5014.              * Creates and adds an arc to the collection.
  5015.              */
  5016.         [
  5017.              helpcontext(0x10040020)
  5018.             ,helpstring("Creates and adds an arc to the collection.")
  5019.             ,restricted, hidden
  5020.         ]
  5021.         HRESULT  AddArcTanTo3Arcs(
  5022.             [in] IGraphic* Arc1, // First arc or circle.
  5023.             [in] IGraphic* Arc2, // Second arc or circle.
  5024.             [in] IGraphic* Arc3, // Third arc or circle.
  5025.             [in] double StartAngle, // Starting angle in radians.
  5026.             [in] double EndAngle, // Ending angle in radians.
  5027.             [out, retval] IGraphic** prop // The newly created Graphic object.
  5028.             );
  5029.  
  5030.             /**
  5031.              * Creates and adds a horizontal dimension to the collection.
  5032.              *
  5033.              * @see TCADAPI TCWDimensionHorizontal, TCWDimensionHorizontalEntity functions
  5034.              */
  5035.         [
  5036.              helpcontext(0x10040021)
  5037.             ,helpstring("Creates and adds a horizontal dimension to the collection.")
  5038.             ,restricted, hidden
  5039.         ]
  5040.         HRESULT  AddDimensionHorizontal(
  5041.             [in] double X0, // X coordinate of first extension line.
  5042.             [in] double Y0, // Y coordinate of first extension line.
  5043.             [in] double Z0, // Z coordinate of first extension line.
  5044.             [in] double X1, // X coordinate of second extension line.
  5045.             [in] double Y1, // Y coordinate of second extension line.
  5046.             [in] double Z1, // Z coordinate of second extension line.
  5047.             [in] double X2, // X coordinate of dimension.
  5048.             [in] double Y2, // Y coordinate of dimension.
  5049.             [in] double Z2, // Z coordinate of dimension.
  5050.             [out, retval] IGraphic** prop // The newly created Graphic object.
  5051.             );
  5052.  
  5053.             /**
  5054.              * Creates and adds a vertical dimension to the collection.
  5055.              *
  5056.              * @see TCADAPI TCWDimensionVertical, TCWDimensionVerticalEntity functions
  5057.              */
  5058.         [
  5059.              helpcontext(0x10040022)
  5060.             ,helpstring("Creates and adds a vertical dimension to the collection.")
  5061.             ,restricted, hidden
  5062.         ]
  5063.         HRESULT  AddDimensionVertical(
  5064.             [in] double X0, // X coordinate of first extension line.
  5065.             [in] double Y0, // Y coordinate of first extension line.
  5066.             [in] double Z0, // Z coordinate of first extension line.
  5067.             [in] double X1, // X coordinate of second extension line.
  5068.             [in] double Y1, // Y coordinate of second extension line.
  5069.             [in] double Z1, // Z coordinate of second extension line.
  5070.             [in] double X2, // X coordinate of dimension.
  5071.             [in] double Y2, // Y coordinate of dimension.
  5072.             [in] double Z2, // Z coordinate of dimension.
  5073.             [out, retval] IGraphic** prop // The newly created Graphic object.
  5074.             );
  5075.  
  5076.             /**
  5077.              * Creates and adds a parallel dimension to the collection.
  5078.              *
  5079.              * @see TCADAPI TCWDimensionParallel, TCWDimensionParallelEntity functions
  5080.              */
  5081.         [
  5082.              helpcontext(0x10040023)
  5083.             ,helpstring("Creates and adds a parallel dimension to the collection.")
  5084.             ,restricted, hidden
  5085.         ]
  5086.         HRESULT  AddDimensionParallel(
  5087.             [in] double X0, // X coordinate of first extension line.
  5088.             [in] double Y0, // Y coordinate of first extension line.
  5089.             [in] double Z0, // Z coordinate of first extension line.
  5090.             [in] double X1, // X coordinate of second extension line.
  5091.             [in] double Y1, // Y coordinate of second extension line.
  5092.             [in] double Z1, // Z coordinate of second extension line.
  5093.             [in] double X2, // X coordinate of dimension.
  5094.             [in] double Y2, // Y coordinate of dimension.
  5095.             [in] double Z2, // Z coordinate of dimension.
  5096.             [out, retval] IGraphic** prop // The newly created Graphic object.
  5097.             );
  5098.  
  5099.             /**
  5100.              * Creates and adds a rotated dimension to the collection.
  5101.              */
  5102.         [
  5103.              helpcontext(0x10040024)
  5104.             ,helpstring("Creates and adds a rotated dimension to the collection.")
  5105.             ,restricted, hidden
  5106.         ]
  5107.         HRESULT  AddDimensionRotated(
  5108.             [in] double X0, // X coordinate of first endpoint defining angle and direction.
  5109.             [in] double Y0, // Y coordinate of first endpoint defining angle and direction.
  5110.             [in] double Z0, // Z coordinate of first endpoint defining angle and direction.
  5111.             [in] double X1, // X coordinate of second endpoint defining angle and direction.
  5112.             [in] double Y1, // Y coordinate of second endpoint defining angle and direction.
  5113.             [in] double Z1, // Z coordinate of second endpoint defining angle and direction.
  5114.             [in] double X2, // X coordinate of first extension line.
  5115.             [in] double Y2, // Y coordinate of first extension line.
  5116.             [in] double Z2, // Z coordinate of first extension line.
  5117.             [in] double X3, // X coordinate of second extension line.
  5118.             [in] double Y3, // Y coordinate of second extension line.
  5119.             [in] double Z3, // Z coordinate of second extension line.
  5120.             [in] double X4, // X coordinate of dimension.
  5121.             [in] double Y4, // Y coordinate of dimension.
  5122.             [in] double Z4, // Z coordinate of dimension.
  5123.             [out, retval] IGraphic** prop // The newly created Graphic object.
  5124.             );
  5125.  
  5126.             /**
  5127.              * Creates and adds a datum dimension to the collection.
  5128.              */
  5129.         [
  5130.              helpcontext(0x10040025)
  5131.             ,helpstring("Creates and adds a datum dimension to the collection.")
  5132.             ,restricted, hidden
  5133.         ]
  5134.         HRESULT  AddDimensionDatum(
  5135.             [in] double X0, // X coordinate of first extension line.
  5136.             [in] double Y0, // Y coordinate of first extension line.
  5137.             [in] double Z0, // Z coordinate of first extension line.
  5138.             [in] double X1, // X coordinate of second extension line.
  5139.             [in] double Y1, // Y coordinate of second extension line.
  5140.             [in] double Z1, // Z coordinate of second extension line.
  5141.             [in] double X2, // X coordinate of dimension.
  5142.             [in] double Y2, // Y coordinate of dimension.
  5143.             [in] double Z2, // Z coordinate of dimension.
  5144.             [out, retval] IGraphic** prop // The newly created Graphic object.
  5145.             );
  5146.  
  5147.             /**
  5148.              * Creates and adds an angular dimension to the collection.
  5149.              */
  5150.         [
  5151.              helpcontext(0x10040026)
  5152.             ,helpstring("Creates and adds an angular dimension to the collection.")
  5153.             ,restricted, hidden
  5154.         ]
  5155.         HRESULT  AddDimensionAngular(
  5156.             [in] IGraphic* Line1, // First graphic.
  5157.             [in] IGraphic* Line2, // Second graphic.
  5158.             [in] double X0, // X coordinate of dimension.
  5159.             [in] double Y0, // Y coordinate of dimension.
  5160.             [in] double Z0, // Z coordinate of dimension.
  5161.             [out, retval] IGraphic** prop // The newly created Graphic object.
  5162.             );
  5163.  
  5164.             /**
  5165.              * Creates and adds a radial dimension to the collection.
  5166.              */
  5167.         [
  5168.              helpcontext(0x10040027)
  5169.             ,helpstring("Creates and adds a radial dimension to the collection.")
  5170.             ,restricted, hidden
  5171.         ]
  5172.         HRESULT  AddDimensionRadius(
  5173.             [in] IGraphic* Arc, // Arc or circle.
  5174.             [in] double X0, // X coordinate of dimension text.
  5175.             [in] double Y0, // Y coordinate of dimension text.
  5176.             [in] double Z0, // Z coordinate of dimension text.
  5177.             [out, retval] IGraphic** prop // The newly created Graphic object.
  5178.             );
  5179.  
  5180.             /**
  5181.              * Creates and adds a diameter dimension to the collection.
  5182.              */
  5183.         [
  5184.              helpcontext(0x10040028)
  5185.             ,helpstring("Creates and adds a diameter dimension to the collection.")
  5186.             ,restricted, hidden
  5187.         ]
  5188.         HRESULT  AddDimensionDiameter(
  5189.             [in] IGraphic* Arc, // Arc or circle.
  5190.             [in] double X0, // X coordinate of dimension text.
  5191.             [in] double Y0, // Y coordinate of dimension text.
  5192.             [in] double Z0, // Z coordinate of dimension text.
  5193.             [out, retval] IGraphic** prop // The newly created Graphic object.
  5194.             );
  5195.  
  5196. #endif //METHOD_OVERFLOW_BUG
  5197.  
  5198.         /**
  5199.          * Creates and adds a new Graphic object to the collection.
  5200.          */
  5201.         [
  5202.              helpcontext(0x10040029)
  5203.             ,helpstring("Creates and adds a new Graphic object to the collection.")
  5204.         ]
  5205.         HRESULT  Add(
  5206.             [in, optional] VARIANT* GraphicType, // The type of the Graphic object.
  5207.             [in, optional] VARIANT* RegenMethod, // A RegenMethod object or index.
  5208.             [in, optional] VARIANT* Inherit, // True if the new Graphic object will inherit the properties of its parent.
  5209.             [in, optional] VARIANT* Style, // Not used in current implementation.
  5210.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  5211.             [in, optional] VARIANT* After, // The Graphic object or index that will precede the added Graphic object.
  5212.             [out, retval] IGraphic** prop // The newly created Graphic object.
  5213.             );
  5214.  
  5215.         /**
  5216.          * Adds an existing Graphic object to the collection.
  5217.          */
  5218.         [
  5219.              helpcontext(0x1004002A)
  5220.             ,helpstring("Adds an existing Graphic object to the collection.")
  5221.         ]
  5222.         HRESULT  AddGraphic(
  5223.             [in] IGraphic* Graphic,    // The Graphic object to add.
  5224.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  5225.             [in, optional] VARIANT* After // The Graphic object or index that will precede the added Graphic object.
  5226.             );
  5227.  
  5228.         /**
  5229.          * Returns the collection's bounding box.
  5230.          */
  5231.         [
  5232.              helpcontext(0x1004002B)
  5233.             ,helpstring("Returns the collection's bounding box.")
  5234.         ]
  5235.         HRESULT  CalcBoundingBox(
  5236.             [in, optional] VARIANT* Transform, // A transformation Matrix object.
  5237.             [out, retval] BoundingBox** prop // The BoundingBox object.
  5238.             );
  5239.  
  5240.         /**
  5241.          * Clears the contents of the collection.
  5242.          */
  5243.         [
  5244.              helpcontext(0x1004002C)
  5245.             ,helpstring("Clears the contents of the collection.")
  5246.         ]
  5247.         HRESULT  Clear(
  5248.             [in, optional] VARIANT* CosmeticOnly // True to only clear cosmetics.
  5249.             );
  5250.  
  5251.         /**
  5252.          * Clears construction lines and arcs.
  5253.          *
  5254.          * @see TCADAPI TCWClearAllConstructions function.
  5255.          */
  5256.         [
  5257.              helpcontext(0x1004002D)
  5258.             ,helpstring("Clears construction lines and arcs.")
  5259.             ,restricted, hidden
  5260.         ]
  5261.         HRESULT  ClearConstruction(
  5262.             );
  5263.  
  5264.         /**
  5265.          * Copies the contents of the collection to the Clipboard.
  5266.          */
  5267.         [
  5268.              helpcontext(0x1004002E)
  5269.             ,helpstring("Copies the contents of the collection to the Clipboard.")
  5270.             ,restricted, hidden
  5271.         ]
  5272.         HRESULT  Copy(
  5273.             );
  5274.  
  5275.         /**
  5276.          * Cuts the contents of the collection to the Clipboard.
  5277.          */
  5278.         [
  5279.              helpcontext(0x1004002F)
  5280.             ,helpstring("Cuts the contents of the collection to the Clipboard.")
  5281.             ,restricted, hidden
  5282.         ]
  5283.         HRESULT  Cut(
  5284.             );
  5285.  
  5286.         /**
  5287.          * Draws all the Graphic objects in the collection.
  5288.          */
  5289.     [
  5290.          helpcontext(0x10040030)
  5291.         ,helpstring("Draws all the Graphic objects in the collection.")
  5292.     ]
  5293.     HRESULT  Draw(
  5294.         [in] VARIANT* View // If supplied, the View object to draw on.
  5295.         );
  5296.  
  5297.         /**
  5298.          * Removes an item from the collection.
  5299.          */
  5300.         [
  5301.              helpcontext(0x10040031)
  5302.             ,helpstring("Removes an item from the collection.")
  5303.         ]
  5304.         HRESULT  Remove(
  5305.             [in] VARIANT* Index, // The index of item to be removed.
  5306.             [out, retval] IGraphic** prop // The Graphic object that was removed.
  5307.             );
  5308.  
  5309.         /**
  5310.          * Selects all the Graphic object's in the collection.
  5311.          *
  5312.          * @see TCADAPI TCWSelectAll function.
  5313.          */
  5314.         [
  5315.              helpcontext(0x10040032)
  5316.             ,helpstring("Selects all the Graphic object's in the collection.")
  5317.         ]
  5318.         HRESULT  Select(
  5319.             );
  5320.  
  5321.         /**
  5322.          * Unselects all the Graphic object's in the collection.
  5323.          *
  5324.          * @see TCADAPI TCWDeselectAll function.
  5325.          */
  5326.         [
  5327.              helpcontext(0x10040033)
  5328.             ,helpstring("Unselects all the Graphic object's in the collection.")
  5329.         ]
  5330.         HRESULT  Unselect(
  5331.             );
  5332.  
  5333.         //////////////////////////// AddXXXMethods \\\\\\\\\\\\\\\\\\\\\\\\\\\\
  5334.  
  5335.         /**
  5336.          * Creates and adds a construction line to the collection.
  5337.          *
  5338.          * @see TCADAPI TCWConstructionAngularLine function
  5339.          */
  5340.     [
  5341.          helpcontext(0x10040034)
  5342.         ,helpstring("Creates and adds a construction line to the collection.")
  5343.     ]
  5344.     HRESULT  AddConstructionAngularLine(
  5345.         [in] double X0, // X coordinate of the first point on line.
  5346.         [in] double Y0, // Y coordinate of the first point on line.
  5347.         [in] double Z0, // Z coordinate of the first point on line.
  5348.         [in] double X1, // X coordinate of the second point on line.
  5349.         [in] double Y1, // Y coordinate of the second point on line.
  5350.         [in] double Z1, // Z coordinate of the second point on line.
  5351.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5352.         );
  5353.  
  5354.         /**
  5355.          * Creates and adds a construction line to the collection.
  5356.          *
  5357.          * @see TCADAPI TCWConstructionHorizontalLine function
  5358.          */
  5359.     [
  5360.          helpcontext(0x10040035)
  5361.         ,helpstring("Creates and adds a construction line to the collection.")
  5362.     ]
  5363.     HRESULT  AddConstructionHorizontalLine(
  5364.         [in] double X0, // X coordinate of the line.
  5365.         [in] double Y0, // Y coordinate of the line.
  5366.         [in] double Z0, // Z coordinate of the line.
  5367.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5368.         );
  5369.  
  5370.         /**
  5371.          * Creates and adds a construction line to the collection.
  5372.          *
  5373.          * @see TCADAPI TCWConstructionVerticalLine function
  5374.          */
  5375.     [
  5376.          helpcontext(0x10040036)
  5377.         ,helpstring("Creates and adds a construction line to the collection.")
  5378.     ]
  5379.     HRESULT  AddConstructionVerticalLine(
  5380.         [in] double X0, // X coordinate of the line.
  5381.         [in] double Y0, // Y coordinate of the line.
  5382.         [in] double Z0, // Z coordinate of the line.
  5383.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5384.         );
  5385.  
  5386.         /**
  5387.          * Creates and adds a construction circle to the collection.
  5388.          *
  5389.          * @see TCADAPI TCWConstructionCenterAndPointCircle function
  5390.          */
  5391.     [
  5392.          helpcontext(0x10040037)
  5393.         ,helpstring("Creates and adds a construction circle to the collection.")
  5394.     ]
  5395.     HRESULT  AddConstructionCenterAndPointCircle(
  5396.         [in] double X0, // X coordinate of the center point.
  5397.         [in] double Y0, // Y coordinate of the center point.
  5398.         [in] double Z0, // Z coordinate of the center point.
  5399.         [in] double X1, // X coordinate of the perimeter point.
  5400.         [in] double Y1, // Y coordinate of the perimeter point.
  5401.         [in] double Z1, // Z coordinate of the perimeter point.
  5402.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5403.         );
  5404.  
  5405.         /**
  5406.          * Creates and adds a construction circle to the collection.
  5407.          *
  5408.          * @see TCADAPI TCWConstructionDoublePointCircle function
  5409.          */
  5410.     [
  5411.          helpcontext(0x10040038)
  5412.         ,helpstring("Creates and adds a construction circle to the collection.")
  5413.     ]
  5414.     HRESULT  AddConstructionDoublePointCircle(
  5415.         [in] double X0, // X coordinate of the first point.
  5416.         [in] double Y0, // Y coordinate of the first point.
  5417.         [in] double Z0, // Z coordinate of the first point.
  5418.         [in] double X1, // X coordinate of the second point.
  5419.         [in] double Y1, // Y coordinate of the second point.
  5420.         [in] double Z1, // Z coordinate of the second point.
  5421.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5422.         );
  5423.  
  5424.         /**
  5425.          * Creates and adds a construction circle to the collection.
  5426.          *
  5427.          * @see TCADAPI TCWConstructionTriplePointCircle function
  5428.          */
  5429.     [
  5430.          helpcontext(0x10040039)
  5431.         ,helpstring("Creates and adds a construction circle to the collection.")
  5432.     ]
  5433.     HRESULT  AddConstructionTriplePointCircle(
  5434.         [in] double X0, // X coordinate of the first point.
  5435.         [in] double Y0, // Y coordinate of the first point.
  5436.         [in] double Z0, // Z coordinate of the first point.
  5437.         [in] double X1, // X coordinate of the second point.
  5438.         [in] double Y1, // Y coordinate of the second point.
  5439.         [in] double Z1, // Z coordinate of the second point.
  5440.         [in] double X2, // X coordinate of the third point.
  5441.         [in] double Y2, // Y coordinate of the third point.
  5442.         [in] double Z2, // Z coordinate of the third point.
  5443.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5444.         );
  5445.  
  5446.         /**
  5447.          * Creates and adds a dot marker to the collection.
  5448.          *
  5449.          * @see TCADAPI TCWDot function
  5450.          */
  5451.     [
  5452.          helpcontext(0x1004003A)
  5453.         ,helpstring("Creates and adds a dot marker to the collection.")
  5454.     ]
  5455.     HRESULT  AddDot(
  5456.         [in] double X0, // X coordinate of the point.
  5457.         [in] double Y0, // Y coordinate of the point.
  5458.         [in] double Z0, // Z coordinate of the point.
  5459.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5460.         );
  5461.  
  5462.         /**
  5463.          * Creates and adds a star to the collection.
  5464.          *
  5465.          * @see TCADAPI TCWStar function
  5466.          */
  5467.     [
  5468.          helpcontext(0x1004003B)
  5469.         ,helpstring("Creates and adds a star marker to the collection.")
  5470.     ]
  5471.     HRESULT  AddStar(
  5472.         [in] double X0, // X coordinate of the point.
  5473.         [in] double Y0, // Y coordinate of the point.
  5474.         [in] double Z0, // Z coordinate of the point.
  5475.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5476.         );
  5477.  
  5478.         /**
  5479.          * Creates and adds a square marker to the collection.
  5480.          *
  5481.          * @see TCADAPI TCWSquare function
  5482.          */
  5483.     [
  5484.          helpcontext(0x1004003C)
  5485.         ,helpstring("Creates and adds a square marker to the collection.")
  5486.     ]
  5487.     HRESULT  AddSquare(
  5488.         [in] double X0, // X coordinate of the point.
  5489.         [in] double Y0, // Y coordinate of the point.
  5490.         [in] double Z0, // Z coordinate of the point.
  5491.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5492.         );
  5493.  
  5494.         /**
  5495.          * Creates and adds a cross marker to the collection.
  5496.          *
  5497.          * @see TCADAPI TCWCross function
  5498.          */
  5499.     [
  5500.          helpcontext(0x1004003D)
  5501.         ,helpstring("Creates and adds a cross marker to the collection.")
  5502.     ]
  5503.     HRESULT  AddCross(
  5504.         [in] double X0, // X coordinate of the point.
  5505.         [in] double Y0, // Y coordinate of the point.
  5506.         [in] double Z0, // Z coordinate of the point.
  5507.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5508.         );
  5509.  
  5510.         /**
  5511.          * Creates and adds a circle marker to the collection.
  5512.          *
  5513.          * @see TCADAPI TCWCircle function
  5514.          */
  5515.     [
  5516.          helpcontext(0x1004003E)
  5517.         ,helpstring("Creates and adds a circle marker to the collection.")
  5518.     ]
  5519.     HRESULT  AddCircle(
  5520.         [in] double X0, // X coordinate of the point.
  5521.         [in] double Y0, // Y coordinate of the point.
  5522.         [in] double Z0, // Z coordinate of the point.
  5523.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5524.         );
  5525.  
  5526.         /**
  5527.          * Creates and adds a single line segment to the collection.
  5528.          *
  5529.          * @see TCADAPI TCWLineSingle function
  5530.          */
  5531.     [
  5532.          helpcontext(0x1004003F)
  5533.         ,helpstring("Creates and adds a single line segment to the collection.")
  5534.     ]
  5535.     HRESULT  AddLineSingle(
  5536.         [in] double X0, // X coordinate of the first endpoint.
  5537.         [in] double Y0, // Y coordinate of the first endpoint.
  5538.         [in] double Z0, // Z coordinate of the first endpoint.
  5539.         [in] double X1, // X coordinate of the second endpoint.
  5540.         [in] double Y1, // Y coordinate of the second endpoint.
  5541.         [in] double Z1, // Z coordinate of the second endpoint.
  5542.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5543.         );
  5544.  
  5545.         /**
  5546.          * Creates and adds a regular polygon to the collection.
  5547.          *
  5548.          * @see TCADAPI TCWLinePolygon function
  5549.          */
  5550.     [
  5551.          helpcontext(0x10040040)
  5552.         ,helpstring("Creates and adds a regular polygon to the collection.")
  5553.     ]
  5554.     HRESULT  AddLinePolygon(
  5555.         [in] double X0, // X coordinate of the center point.
  5556.         [in] double Y0, // Y coordinate of the center point.
  5557.         [in] double Z0, // Z coordinate of the center point.
  5558.         [in] double X1, // X coordinate of the corner point.
  5559.         [in] double Y1, // Y coordinate of the corner point.
  5560.         [in] double Z1, // Z coordinate of the corner point.
  5561.         [in] long nsides, // number of sides.
  5562.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5563.         );
  5564.  
  5565.         /**
  5566.          * Creates and adds a rectangle to the collection.
  5567.          *
  5568.          * @see TCADAPI TCWLineRectangle function
  5569.          */
  5570.     [
  5571.          helpcontext(0x10040041)
  5572.         ,helpstring("Creates and adds a rectangle to the collection.")
  5573.     ]
  5574.     HRESULT  AddLineRectangle(
  5575.         [in] double X0, // X coordinate of the upper left corner.
  5576.         [in] double Y0, // Y coordinate of the upper left corner.
  5577.         [in] double Z0, // Z coordinate of the upper left corner.
  5578.         [in] double X1, // X coordinate of the lower right corner.
  5579.         [in] double Y1, // Y coorindate of the lower right corner.
  5580.         [in] double Z1, // Z coorindate of the lower right corner.
  5581.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5582.         );
  5583.  
  5584.         /**
  5585.          * Creates and adds a rotated rectangle to the collection.
  5586.          *
  5587.          * @see TCADAPI TCWLineRotatedRectangle function
  5588.          */
  5589.     [
  5590.          helpcontext(0x10040042)
  5591.         ,helpstring("Creates and adds a rotated rectangle to the collection.")
  5592.     ]
  5593.     HRESULT  AddLineRotatedRectangle(
  5594.         [in] double X0, // X coordinate of the upper left corner.
  5595.         [in] double Y0, // Y coordinate of the upper left corner.
  5596.         [in] double Z0, // Z coordinate of the upper left corner.
  5597.         [in] double X1, // X coordinate of the lower right corner.
  5598.         [in] double Y1, // Y coorindate of the lower right corner.
  5599.         [in] double Z1, // Z coorindate of the lower right corner.
  5600.         [in] double Height, // Height of the rectangle.
  5601.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5602.         );
  5603.  
  5604.         /**
  5605.          * Creates and adds a single line segment to the collection.
  5606.          *
  5607.          * @see TCADAPI TCWLinePerpendicular function
  5608.          */
  5609.     [
  5610.          helpcontext(0x10040043)
  5611.         ,helpstring("Creates and adds a single line segment to the collection.")
  5612.     ]
  5613.     HRESULT  AddLinePerpendicular(
  5614.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  5615.         [in] double X0, // X coordinate of the point on the existing line.
  5616.         [in] double Y0, // Y coordinate of the point on the existing line.
  5617.         [in] double Z0, // Z coordinate of the point on the existing line.
  5618.         [in] double X1, // X coordinate of the second point on the new line.
  5619.         [in] double Y1, // Y coordinate of the second point on the new line.
  5620.         [in] double Z1, // Z coordinate of the second point on the new line.
  5621.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5622.         );
  5623.  
  5624.         /**
  5625.          * Creates and adds a single line segment to the collection.
  5626.          *
  5627.          * @see TCADAPI TCWLineParallel function
  5628.          */
  5629.     [
  5630.          helpcontext(0x10040044)
  5631.         ,helpstring("Creates and adds a single line segment to the collection.")
  5632.     ]
  5633.     HRESULT  AddLineParallel(
  5634.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  5635.         [in] double X0, // X coordinate of the new line.
  5636.         [in] double Y0, // Y coordinate of the new line.
  5637.         [in] double Z0, // Z coordinate of the new line.
  5638.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5639.         );
  5640.  
  5641.         /**
  5642.          * Creates and adds a multiple segment line to the collection.
  5643.          * The returned Graphic object contains only a beginning vertex.  The user must
  5644.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  5645.          * and a Graphic.Finish call to complete the Graphic object.
  5646.          *
  5647.          * @see TCADAPI TCWLineMultiline function
  5648.          */
  5649.     [
  5650.          helpcontext(0x10040045)
  5651.         ,helpstring("Creates and adds a multiple segment line to the collection.")
  5652.     ]
  5653.     HRESULT  AddLineMultiline(
  5654.         [in] double X0, // X coordinate of first endpoint.
  5655.         [in] double Y0, // Y coordinate of first endpoint.
  5656.         [in] double Z0, // Z coordinate of first endpoint.
  5657.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5658.         );
  5659.  
  5660.         /**
  5661.          * Creates and adds an irregular polygon to the collection.
  5662.          * The returned Graphic object contains only a beginning vertex.  The user must
  5663.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  5664.          * and a Graphic.Close call to complete the Graphic object.
  5665.          *
  5666.          * @see TCADAPI TCWLineIrregularPolygon function
  5667.          */
  5668.     [
  5669.          helpcontext(0x10040046)
  5670.         ,helpstring("Creates and adds an irregular polygon to the collection.")
  5671.     ]
  5672.     HRESULT  AddLineIrregularPolygon(
  5673.         [in] double X0, // X coordinate of first endpoint.
  5674.         [in] double Y0, // Y coordinate of first endpoint.
  5675.         [in] double Z0, // Z coordinate of first endpoint.
  5676.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5677.         );
  5678.  
  5679.         /**
  5680.          * Creates and adds a bezier curve to the collection.
  5681.          * The returned Graphic object contains only a beginning vertex.  The user must
  5682.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  5683.          * and a Graphic.Finish call to complete the Graphic object.
  5684.          *
  5685.          * @see TCADAPI TCWCurveBezier function
  5686.          */
  5687.     [
  5688.          helpcontext(0x10040047)
  5689.         ,helpstring("Creates and adds a bezier curve to the collection.")
  5690.     ]
  5691.     HRESULT  AddCurveBezier(
  5692.         [in] double X0, // X coordinate of the first endpoint.
  5693.         [in] double Y0, // Y coordinate of the first endpoint.
  5694.         [in] double Z0, // Z coordinate of the first endpoint.
  5695.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5696.         );
  5697.  
  5698.         /**
  5699.          * Creates and adds a cubic spline curve to the collection.
  5700.          * The returned Graphic object contains only a beginning vertex.  The user must
  5701.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  5702.          * and a Graphic.Finish call to complete the Graphic object.
  5703.          *
  5704.          * @see TCADAPI TCWCurveSpline function
  5705.          */
  5706.     [
  5707.          helpcontext(0x10040048)
  5708.         ,helpstring("Creates and adds a cubic spline curve to the collection.")
  5709.     ]
  5710.     HRESULT  AddCurveSpline(
  5711.         [in] double X0, // X coordinate of the first endpoint.
  5712.         [in] double Y0, // Y coordinate of the first endpoint.
  5713.         [in] double Z0, // Z coordinate of the first endpoint.
  5714.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5715.         );
  5716.  
  5717.         /**
  5718.          * Creates and adds a circle to the collection.
  5719.          *
  5720.          * @see TCADAPI TCWCircleCenterAndPoint function
  5721.          */
  5722.     [
  5723.          helpcontext(0x10040049)
  5724.         ,helpstring("Creates and adds a circle to the collection.")
  5725.     ]
  5726.     HRESULT  AddCircleCenterAndPoint(
  5727.         [in] double X0, // X coordinate of the center point.
  5728.         [in] double Y0, // Y coordinate of the center point.
  5729.         [in] double Z0, // Z coordinate of the cneter point.
  5730.         [in] double X1, // X coordinate of the radius point.
  5731.         [in] double Y1, // Y coordinate of the radius point.
  5732.         [in] double Z1, // Z coordinate of the radius point.
  5733.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5734.         );
  5735.  
  5736.         /**
  5737.          * Creates and adds a circle to the collection.
  5738.          *
  5739.          * @see TCADAPI TCWCircleDoublePoint function
  5740.          */
  5741.     [
  5742.          helpcontext(0x1004004A)
  5743.         ,helpstring("Creates and adds a circle to the collection.")
  5744.     ]
  5745.     HRESULT  AddCircleDoublePoint(
  5746.         [in] double X0, // X coordinate of the first point.
  5747.         [in] double Y0, // Y coordinate of the first point.
  5748.         [in] double Z0, // Z coordinate of the first point.
  5749.         [in] double X1, // X coordinate of the second point.
  5750.         [in] double Y1, // Y coordinate of the second point.
  5751.         [in] double Z1, // Z coordinate of the second point.
  5752.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5753.         );
  5754.  
  5755.         /**
  5756.          * Creates and adds a circle to the collection.
  5757.          *
  5758.          * @see TCADAPI TCWCircleTriplePoint function
  5759.          */
  5760.     [
  5761.          helpcontext(0x1004004B)
  5762.         ,helpstring("Creates and adds a circle to the collection.")
  5763.     ]
  5764.     HRESULT  AddCircleTriplePoint(
  5765.         [in] double X0, // X coordinate of the first point.
  5766.         [in] double Y0, // Y coordinate of the first point.
  5767.         [in] double Z0, // Z coordinate of the first point.
  5768.         [in] double X1, // X coordinate of the second point.
  5769.         [in] double Y1, // Y coordinate of the second point.
  5770.         [in] double Z1, // Z coordinate of the second point.
  5771.         [in] double X2, // X coordinate of the third point.
  5772.         [in] double Y2, // Y coordinate of the third point.
  5773.         [in] double Z2, // Z coordinate of the third point.
  5774.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5775.         );
  5776.  
  5777.         /**
  5778.          * Creates and adds a ellipse to the collection.
  5779.          *
  5780.          * @see TCADAPI TCWEllipse function
  5781.          */
  5782.     [
  5783.          helpcontext(0x1004004C)
  5784.         ,helpstring("Creates and adds a ellipse to the collection.")
  5785.     ]
  5786.     HRESULT  AddEllipse(
  5787.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  5788.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  5789.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  5790.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  5791.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  5792.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  5793.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5794.         );
  5795.  
  5796.         /**
  5797.          * Creates and adds a ellipse to the collection.
  5798.          *
  5799.          * @see TCADAPI TCWEllipseRotatedEllipse function
  5800.          */
  5801.     [
  5802.          helpcontext(0x1004004D)
  5803.         ,helpstring("Creates and adds a ellipse to the collection.")
  5804.     ]
  5805.     HRESULT  AddEllipseRotatedEllipse(
  5806.         [in] double X0, // X coordinate of ellipse's center point.
  5807.         [in] double Y0, // Y coordinate of ellipse's center point.
  5808.         [in] double Z0, // Z coordinate of ellipse's center point.
  5809.         [in] double X1, // X coordinate of major axis radius point.
  5810.         [in] double Y1, // Y coordinate of major axis radius point.
  5811.         [in] double Z1, // Z coordinate of major axis radius point.
  5812.         [in] double X2, // X coordinate of minor axis radius point.
  5813.         [in] double Y2, // Y coordinate of minor axis radius point.
  5814.         [in] double Z2, // Z coordinate of minor axis radius point.
  5815.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5816.         );
  5817.  
  5818.         /**
  5819.          * Creates and adds a ellipse to the collection.
  5820.          *
  5821.          * @see TCADAPI TCWEllipseFixedRatio function
  5822.          */
  5823.     [
  5824.          helpcontext(0x1004004E)
  5825.         ,helpstring("Creates and adds a ellipse to the collection.")
  5826.     ]
  5827.     HRESULT  AddEllipseFixedRatio(
  5828.         [in] double X0, // X coordinate of ellipse's center point.
  5829.         [in] double Y0, // Y coordinate of ellipse's center point.
  5830.         [in] double Z0, // Z coordinate of ellipse's center point.
  5831.         [in] double X1, // X coordinate of radius in Y direction.
  5832.         [in] double Y1, // Y coordinate of radius in Y direction.
  5833.         [in] double Z1, // Z coordinate of radius in Y direction.
  5834.         [in] double XToYRatio, // Ratio of Rx to Ry.
  5835.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5836.         );
  5837.  
  5838.         /**
  5839.          * Creates and adds an arc to the collection.
  5840.          *
  5841.          * @see TCADAPI TCWArcCenterAndPoint function
  5842.          */
  5843.     [
  5844.          helpcontext(0x1004004F)
  5845.         ,helpstring("Creates and adds an arc to the collection.")
  5846.     ]
  5847.     HRESULT  AddArcCenterAndPoint(
  5848.         [in] double X0, // X coordinate of arc's center point.
  5849.         [in] double Y0, // Y coordinate of arc's center point.
  5850.         [in] double Z0, // Z coordinate of arc's center point.
  5851.         [in] double X1, // X coordinate of arc's radius point.
  5852.         [in] double Y1, // Y coordinate of arc's radius point.
  5853.         [in] double Z1, // Z coordinate of arc's radius point.
  5854.         [in] double StartAngle, // Starting angle in radians.
  5855.         [in] double EndAngle, // Ending angle in radians.
  5856.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5857.         );
  5858.  
  5859.         /**
  5860.          * Creates and adds an arc to the collection.
  5861.          *
  5862.          * @see TCADAPI TCWArcDoublePoint function
  5863.          */
  5864.     [
  5865.          helpcontext(0x10040050)
  5866.         ,helpstring("Creates and adds an arc to the collection.")
  5867.     ]
  5868.     HRESULT  AddArcDoublePoint(
  5869.         [in] double X0, // X coordinate of first endpoint.
  5870.         [in] double Y0, // Y coordinate of first endpoint.
  5871.         [in] double Z0, // Z coordinate of first endpoint.
  5872.         [in] double X1, // X coordinate of second endpoint.
  5873.         [in] double Y1, // Y coordinate of second endpont.
  5874.         [in] double Z1, // Z coordinate of second endpoint.
  5875.         [in] double StartAngle, // Starting angle in radians.
  5876.         [in] double EndAngle, // Ending angle in radians.
  5877.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5878.         );
  5879.  
  5880.         /**
  5881.          * Creates and adds an arc to the collection.
  5882.          *
  5883.          * @see TCADAPI TCWArcTriplePoint function
  5884.          */
  5885.     [
  5886.          helpcontext(0x10040051)
  5887.         ,helpstring("Creates and adds an arc to the collection.")
  5888.     ]
  5889.     HRESULT  AddArcTriplePoint(
  5890.         [in] double X0, // X coordinate of starting point.
  5891.         [in] double Y0, // Y coordinate of starting point.
  5892.         [in] double Z0, // Z coordinate of starting point.
  5893.         [in] double X1, // X coordinate of point on perimeter.
  5894.         [in] double Y1, // Y coordinate of point on perimeter.
  5895.         [in] double Z1, // Z coordinate of point on perimeter.
  5896.         [in] double X2, // X coordinate of ending point.
  5897.         [in] double Y2, // Y coordinate of ending point.
  5898.         [in] double Z2, // Z coordinate of ending point.
  5899.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5900.         );
  5901.  
  5902.         /**
  5903.          * Creates and adds an elliptical arc to the collection.
  5904.          *
  5905.          * @see TCADAPI TCWArcElliptical function
  5906.          */
  5907.     [
  5908.          helpcontext(0x10040052)
  5909.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  5910.     ]
  5911.     HRESULT  AddArcElliptical(
  5912.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  5913.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  5914.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  5915.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  5916.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  5917.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  5918.         [in] double StartAngle, // Starting angle in radians.
  5919.         [in] double EndAngle, // Ending angle in radians.
  5920.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5921.         );
  5922.  
  5923.         /**
  5924.          * Creates and adds an elliptical arc to the collection.
  5925.          *
  5926.          * @see TCADAPI TCWArcRotatedElliptical function
  5927.          */
  5928.     [
  5929.          helpcontext(0x10040053)
  5930.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  5931.     ]
  5932.     HRESULT  AddArcRotatedElliptical(
  5933.         [in] double X0, // X coordinate of elliptical arc's center point.
  5934.         [in] double Y0, // Y coordinate of elliptical arc's center point.
  5935.         [in] double Z0, // Z coordinate of elliptical arc's center point.
  5936.         [in] double X1, // X coordinate of major axis radius point.
  5937.         [in] double Y1, // Y coordinate of major axis radius point.
  5938.         [in] double Z1, // Z coordinate of major axis radius point.
  5939.         [in] double X2, // X coordinate of minor axis radius point.
  5940.         [in] double Y2, // Y coordinate of minor axis radius point.
  5941.         [in] double Z2, // Z coordinate of minor axis radius point.
  5942.         [in] double StartAngle, // Starting angle in radians.
  5943.         [in] double EndAngle, // Ending angle in radians.
  5944.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5945.         );
  5946.  
  5947.         /**
  5948.          * Creates and adds an elliptical arc to the collection.
  5949.          *
  5950.          * @see TCADAPI TCWArcEllipticalFixedRatio function
  5951.          */
  5952.     [
  5953.          helpcontext(0x10040054)
  5954.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  5955.     ]
  5956.     HRESULT  AddArcEllipticalFixedRatio(
  5957.         [in] double X0, // X coordinate of ellipse's center point.
  5958.         [in] double Y0, // Y coordinate of ellipse's center point.
  5959.         [in] double Z0, // Z coordinate of ellipse's center point.
  5960.         [in] double X1, // X coordinate of radius in Y direction.
  5961.         [in] double Y1, // Y coordinate of radius in Y direction.
  5962.         [in] double Z1, // Z coordinate of radius in Y direction.
  5963.         [in] double XToYRatio, // Ratio of Rx to Ry.
  5964.         [in] double StartAngle, // Starting angle in radians.
  5965.         [in] double EndAngle, // Ending angle in radians.
  5966.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5967.         );
  5968.  
  5969.         /**
  5970.          * Creates and adds a text Graphic object to the collection.
  5971.          *
  5972.          * @see TCADAPI TCWText function
  5973.          */
  5974.     [
  5975.          helpcontext(0x10040055)
  5976.         ,helpstring("Creates and adds a text Graphic object to the collection.")
  5977.     ]
  5978.     HRESULT  AddText(
  5979.         [in] BSTR Text, // The text string.
  5980.         [in] double X0, // X coordinate of text's starting point.
  5981.         [in] double Y0, // Y coordinate of text's starting point.
  5982.         [in] double Z0, // Z coordinate of text's starting point.
  5983.         [in] double Height, // Height of text object.
  5984.         [in, optional] VARIANT* Angle, // Rotation angle of text in radians.
  5985.         [in, optional] VARIANT* Width, // Width of text object.
  5986.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  5987.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  5988.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5989.         );
  5990.  
  5991.         ///////////////////// Blocks Groups and Hatches \\\\\\\\\\\\\\\\\\\\\\\\\\
  5992.  
  5993.         /**
  5994.          * Creates a block in the Drawing object from the Graphic objects in the collection.
  5995.          *
  5996.          * @see TCADAPI TCWBlockCreate function
  5997.          */
  5998.     [
  5999.          helpcontext(0x10040056)
  6000.         ,helpstring("Creates a block in the Drawing object from the Graphic objects in the collection.")
  6001.     ]
  6002.     HRESULT  CreateBlock(
  6003.         [in, optional] BSTR Name, // Name for the new block.
  6004.         [in, optional] VARIANT* XRef, // X coordinate of the block reference point.
  6005.         [in, optional] VARIANT* YRef, // Y coordinate of the block reference point.
  6006.         [in, optional] VARIANT* ZRef, // Z coordinate of the block reference point.
  6007.         [in, optional] VARIANT* CopyGraphics, // True to make the group using copies of the Graphic objects in the Graphics collection.
  6008.         [in, optional] VARIANT* InsertBlock, // True to insert the new block in the Drawing object.
  6009.         [in, out, optional] VARIANT* Insert, // The Insert Graphic object if InsertBlock was true
  6010.         [out, retval] Block** prop // The newly created block.
  6011.         );
  6012.  
  6013.         /**
  6014.          * Adds a block insertion to the collection.
  6015.          *
  6016.          * @see TCADAPI TCWBlockInsert function
  6017.          */
  6018.     [
  6019.          helpcontext(0x10040057)
  6020.         ,helpstring("Adds a block insertion to the collection.")
  6021.     ]
  6022.     HRESULT  AddBlockInsertion(
  6023.         [in] VARIANT* Block, // BlockObj or index of the block.
  6024.         [in, optional] VARIANT* X0, // X coordinate of the block insertion point.
  6025.         [in, optional] VARIANT* Y0, // Y coordinate of the block insertion point.
  6026.         [in, optional] VARIANT* Z0, // Z coordinate of the block insertion point.
  6027.         [in, optional] VARIANT* XScale, // X scale factor.
  6028.         [in, optional] VARIANT* YScale, // Y scale factor.
  6029.         [in, optional] VARIANT* ZScale, // Z scale factor.
  6030.         [in, optional] VARIANT* Angle, // Rotation angle of block insertion in radians.
  6031.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6032.         );
  6033.  
  6034.         /**
  6035.          * Adds a group to the collection from the Graphic objects in the collection.
  6036.          *
  6037.          * @see TCADAPI TCWGroupCreate function
  6038.          */
  6039.     [
  6040.          helpcontext(0x10040058)
  6041.         ,helpstring("Adds a group to the collection from the Graphic objects in the collection.")
  6042.     ]
  6043.     HRESULT  AddGroup(
  6044.         [in]            VARIANT* Name, // Name for the new group.
  6045.         [in, optional]    VARIANT* Copy, // True to make the group using copies of the Graphic objects in the Graphics collection.
  6046.         [out, retval]    IGraphic** prop // The newly created Graphic object.
  6047.         );
  6048.  
  6049.         /**
  6050.          * Explodes groups and block insertions in the collection.
  6051.          *
  6052.          * @see TCADAPI TCWExplode function
  6053.          */
  6054.     [
  6055.          helpcontext(0x10040059)
  6056.         ,helpstring("Explodes groups and block insertions in the collection.")
  6057.         ,restricted, hidden
  6058.     ]
  6059.     HRESULT  Explode(
  6060.         [out, retval] GraphicSet** prop // The exploded Graphic objects.
  6061.         );
  6062.  
  6063.         /////////////////////////// Copy Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  6064.  
  6065.         /**
  6066.          * Copies the Graphic objects in the collection along a line.
  6067.          */
  6068.     [
  6069.          helpcontext(0x1004005A)
  6070.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  6071.         ,restricted, hidden
  6072.     ]
  6073.     HRESULT  LinearCopyAbsolute(
  6074.         [in] double X, // X coordinate to copy to.
  6075.         [in] double Y, // Y coordinate to copy to.
  6076.         [in] double Z, // Z coordinate to copy to.
  6077.         [in] long Copies, // Number of copies including the original.
  6078.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  6079.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  6080.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  6081.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  6082.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6083.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  6084.         );
  6085.  
  6086.         /**
  6087.          * Copies the Graphic objects in the collection along a line.
  6088.          */
  6089.     [
  6090.          helpcontext(0x1004005B)
  6091.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  6092.         ,restricted, hidden
  6093.     ]
  6094.     HRESULT  LinearCopyRelative(
  6095.         [in] double X, // X offset.
  6096.         [in] double Y, // Y offset.
  6097.         [in] double Z, // Z offset.
  6098.         [in] long Copies, // Number of copies including the original.
  6099.         [in, optional] VARIANT* Fit, // True if specified offset is for last copy.
  6100.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6101.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  6102.         );
  6103.  
  6104.         /**
  6105.          * Copies the Graphic objects in the collection along a line.
  6106.          */
  6107.     [
  6108.          helpcontext(0x1004005C)
  6109.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  6110.         ,restricted, hidden
  6111.     ]
  6112.     HRESULT  LinearCopyAngle(
  6113.         [in] double Length, // Length of copy.
  6114.         [in] double Angle, // Angle of copy in radians.
  6115.         [in] long Copies, // Number of copies including the original.
  6116.         [in, optional] VARIANT* Fit, // True if specified length is for last copy.
  6117.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  6118.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  6119.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  6120.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  6121.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6122.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  6123.         );
  6124.  
  6125.         /**
  6126.          * Copies the Graphic objects in the collection radially.
  6127.          * Always rotates in the currently active workplane?
  6128.          */
  6129.     [
  6130.          helpcontext(0x1004005D)
  6131.         ,helpstring("Copies the Graphic objects in the collection radially.")
  6132.         ,restricted, hidden
  6133.     ]
  6134.     HRESULT  RadialCopyAbsolute(
  6135.         [in] double X0, // X coordinate of center of arc.
  6136.         [in] double Y0, // Y coordinate of center of arc.
  6137.         [in] double Z0, // Z coordinate of center of arc.
  6138.         [in] double X1, // X coordinate of point on arc.
  6139.         [in] double Y1, // Y coordinate of point on arc.
  6140.         [in] double Z1, // Z coordinate of point on arc.
  6141.         [in] long Copies, // Number of copies including the original.
  6142.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  6143.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  6144.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  6145.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  6146.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  6147.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6148.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  6149.         );
  6150.  
  6151.         /**
  6152.          * Copies the Graphic objects in the collection radially.
  6153.          * Always rotates in the currently active workplane?
  6154.          */
  6155.     [
  6156.          helpcontext(0x1004005E)
  6157.         ,helpstring("Copies the Graphic objects in the collection radially.")
  6158.         ,restricted, hidden
  6159.     ]
  6160.     HRESULT  RadialCopyAngle(
  6161.         [in] double X, // X coordinate of center of arc.
  6162.         [in] double Y, // Y coordinate of center of arc.
  6163.         [in] double Z, // Z coordinate of center of arc.
  6164.         [in] double Angle, // Angle between copies or for last copy.
  6165.         [in] double RotationAngle, // Angle to rotate each copy.
  6166.         [in] long Copies, // Number of copies including the original.
  6167.         [in, optional] VARIANT* Fit, // True if specified angle is for last copy.
  6168.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  6169.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  6170.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  6171.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  6172.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6173.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  6174.         );
  6175.  
  6176.         /**
  6177.          * Copies the Graphic objects in a two dimensional array.
  6178.          * Always translates in the currently active workplane?
  6179.          */
  6180.     [
  6181.          helpcontext(0x1004005F)
  6182.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  6183.         ,restricted, hidden
  6184.     ]
  6185.     HRESULT  ArrayCopyAbsolute(
  6186.         [in] double X, // Coordinate defining row and column spacing.
  6187.         [in] double Y, // Coordinate defining row and column spacing.
  6188.         [in] double Z, // Coordinate defining row and column spacing.
  6189.         [in] long Rows, // Number of rows including the original.
  6190.         [in] long Columns, // Number of columns including the original.
  6191.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  6192.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  6193.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  6194.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  6195.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  6196.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6197.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  6198.         );
  6199.  
  6200.         /**
  6201.          * Copies the Graphic objects in a two dimensional array.
  6202.          * Always translates in the currently active workplane?
  6203.          */
  6204.     [
  6205.          helpcontext(0x10040060)
  6206.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  6207.         ,restricted, hidden
  6208.     ]
  6209.     HRESULT  ArrayCopyRelative(
  6210.         [in] double U, // Column offset.
  6211.         [in] double V, // Row offset.
  6212.         [in] long Rows, // Number of rows including the original.
  6213.         [in] long Columns, // Number of columns including the original.
  6214.         [in, optional] VARIANT* Fit, // True if specified offsets are for last copy.
  6215.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  6216.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6217.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  6218.         );
  6219.  
  6220.         /**
  6221.          * Mirrors the Graphic objects in the collection about a line.
  6222.          */
  6223.     [
  6224.          helpcontext(0x10040061)
  6225.         ,helpstring("Mirrors the Graphic objects in the collection about a line.")
  6226.         ,restricted, hidden
  6227.     ]
  6228.     HRESULT  MirrorCopyLine(
  6229.         [in] double X0, // X coordinate of the first point on line.
  6230.         [in] double Y0, // Y coordinate of the first point on line.
  6231.         [in] double Z0, // Z coordinate of the first point on line.
  6232.         [in] double X1, // X coordinate of the second point on line.
  6233.         [in] double Y1, // Y coordinate of the second point on line.
  6234.         [in] double Z1, // Z coordinate of the second point on line.
  6235.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  6236.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  6237.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6238.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  6239.         );
  6240.  
  6241.         /**
  6242.          * Mirrors the Graphic objects in the collection about an angle.
  6243.          */
  6244.     [
  6245.          helpcontext(0x10040062)
  6246.         ,helpstring("Mirrors the Graphic objects in the collection about an angle.")
  6247.         ,restricted, hidden
  6248.     ]
  6249.     HRESULT  MirrorCopyAngle(
  6250.         [in] double X, // X coordinate to mirror to.
  6251.         [in] double Y, // Y coordinate to mirror to.
  6252.         [in] double Z, // Z coordinate to mirror to.
  6253.         [in] double Angle, // Angle of mirror.
  6254.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  6255.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  6256.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  6257.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  6258.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  6259.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6260.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  6261.         );
  6262.  
  6263.         /**
  6264.          * Scales the Graphic objects in the collection.
  6265.          *
  6266.          * @see TCADAPI TCWSelectionScale function.
  6267.          */
  6268.     [
  6269.          helpcontext(0x10040063)
  6270.         ,helpstring("Scales the Graphic objects in the collection.")
  6271.     ]
  6272.     HRESULT  Scale(
  6273.         [in] double XScale, // X scale factor.
  6274.         [in] double YScale, // Y scale factor.
  6275.         [in] double ZScale, // Z scale factor.
  6276.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  6277.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  6278.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  6279.         [out, retval] IMatrix** prop // The matrix that was calculated.
  6280.         );
  6281.  
  6282.         /**
  6283.          * Rotates the Graphic objects in the collection.
  6284.          *
  6285.          * @see TCADAPI TCWSelectionRotate function.
  6286.          */
  6287.     [
  6288.          helpcontext(0x10040064)
  6289.         ,helpstring("Rotates the Graphic objects in the collection.")
  6290.     ]
  6291.     HRESULT  RotateAxis(
  6292.         [in] double Angle, // Angle of rotation in radians.
  6293.         [in, optional] VARIANT* XAxis, // X coordinate of axis direction.
  6294.         [in, optional] VARIANT* YAxis, // Y coordinate of axis direction.
  6295.         [in, optional] VARIANT* ZAxis, // Z coordinate of axis direction.
  6296.         [in, optional] VARIANT* X, // X coordinate of the rotation center.
  6297.         [in, optional] VARIANT* Y, // Y coordinate of the rotation center.
  6298.         [in, optional] VARIANT* Z, // Z coordinate of the rotation center.
  6299.         [out, retval] IMatrix** prop // The matrix that was calculated.
  6300.         );
  6301.  
  6302.         /**
  6303.          * Rotates the Graphic objects in the collection.
  6304.          *
  6305.          * @see TCADAPI TCWSelectionRotate function.
  6306.          */
  6307.     [
  6308.          helpcontext(0x10040065)
  6309.         ,helpstring("Rotates the Graphic objects in the collection.")
  6310.     ]
  6311.     HRESULT  RotateAbsolute(
  6312.         [in] VARIANT* XTo, // X coordinate of the point to rotate to.
  6313.         [in] VARIANT* YTo, // Y coordinate of the point to rotate to.
  6314.         [in] VARIANT* ZTo, // Z coordinate of the point to rotate to.
  6315.         [in] VARIANT* XFrom, // X coordinate of the point to rotate from.
  6316.         [in] VARIANT* YFrom, // Y coordinate of the point to rotate from.
  6317.         [in] VARIANT* ZFrom, // Z coordinate of the point to rotate from.
  6318.         [in, optional] VARIANT* XRef, // X coordinate of the rotation center.
  6319.         [in, optional] VARIANT* YRef, // Y coordinate of the rotation center.
  6320.         [in, optional] VARIANT* ZRef, // Z coordinate of the rotation center.
  6321.         [out, retval] IMatrix** prop // The matrix that was calculated.
  6322.         );
  6323.  
  6324.         /**
  6325.          * Moves the Graphic objects in the collection to a new location.
  6326.          *
  6327.          * @see TCADAPI TCWSelectionMove function.
  6328.          */
  6329.     [
  6330.          helpcontext(0x10040066)
  6331.         ,helpstring("Moves the Graphic objects in the collection to a new location.")
  6332.     ]
  6333.     HRESULT  MoveAbsolute(
  6334.         [in] double X, // X coordinate to move to.
  6335.         [in] double Y, // Y coordinate to move to.
  6336.         [in] double Z, // Z coordinate to move to.
  6337.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  6338.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  6339.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  6340.         [out, retval] IMatrix** prop // The matrix that was calculated.
  6341.         );
  6342.  
  6343.         /**
  6344.          * Moves the Graphic objects in the collection by a specified offset.
  6345.          *
  6346.          * @see TCADAPI TCWSelectionMove function.
  6347.          */
  6348.     [
  6349.          helpcontext(0x10040067)
  6350.         ,helpstring("Moves the Graphic objects in the collection by a specified offset.")
  6351.     ]
  6352.     HRESULT  MoveRelative(
  6353.         [in] double X, // X offset.
  6354.         [in] double Y, // Y offset.
  6355.         [in] double Z, // Z offset.
  6356.         [out, retval] IMatrix** prop // The matrix that was calculated.
  6357.         );
  6358.  
  6359.         /**
  6360.          * Transforms the Graphic objects in the collection.
  6361.          */
  6362.     [
  6363.          helpcontext(0x10040068)
  6364.         ,helpstring("Transforms the Graphic object.")
  6365.     ]
  6366.     HRESULT  Transform(
  6367.         [in] IMatrix* Transform // The matrix to perform transformation.
  6368.         );
  6369.  
  6370.         ////////////////////// Miscellaneous Edit Methods \\\\\\\\\\\\\\\\\\\\
  6371.  
  6372.         /**
  6373.          * Aligns the Graphic objects in the collection.
  6374.          *
  6375.          * @see TCADAPI TCWAlignXXX functions.
  6376.          */
  6377.     [
  6378.          helpcontext(0x10040069)
  6379.         ,helpstring("Aligns the Graphic objects in the collection.")
  6380.         ,restricted, hidden
  6381.     ]
  6382.     HRESULT  Align(
  6383.         [in] ImsiAlignType AlignType // Bottom, middle, etc.
  6384.         );
  6385.  
  6386.         /**
  6387.          * Aligns the Graphic objects in the collection along a line.
  6388.          */
  6389.     [
  6390.          helpcontext(0x1004006A)
  6391.         ,helpstring("Aligns the Graphic objects in the collection along a line.")
  6392.         ,restricted, hidden
  6393.     ]
  6394.     HRESULT  AlignAlongLine(
  6395.         [in] double X0, // X coordinate of the first point.
  6396.         [in] double Y0, // Y coordinate of the first point.
  6397.         [in] double Z0, // Z coordinate of the first point.
  6398.         [in] double X1, // X coordinate of the second point.
  6399.         [in] double Y1, // Y coordinate of the second point.
  6400.         [in] double Z1 // Z coordinate of the second point.
  6401.         );
  6402.  
  6403.         /**
  6404.          * Returns the index within the Graphics collection of the specified graphic handle.
  6405.          * Private.
  6406.          */
  6407.         [
  6408.              restricted
  6409.             ,helpcontext(0x1004006B)
  6410.             ,helpstring("Private.  Returns the index within the Graphics collection of the specified graphic handle.")
  6411.         ]
  6412.         HRESULT  _FindIndex(
  6413.             [in] long g, // The graphic handle.
  6414.             [out, retval] long* prop // The index.
  6415.             );
  6416.  
  6417.         /**
  6418.          * Returns the Graphic objects in the collection that match a query string.
  6419.          *
  6420.          * @see TCADAPI TCWSelectByQuery function.
  6421.          */
  6422.         [
  6423.              helpcontext(0x1004006C)
  6424.             ,helpstring("Returns the Graphic objects in the collection that match a query string.")
  6425.         ]
  6426.         HRESULT  QuerySet(
  6427.             [in] BSTR Query, // The query string.
  6428.             [out, retval] GraphicSet** prop // The matching Graphic objects, as a GraphicSet__Object.
  6429.             );
  6430.  
  6431.         /**
  6432.          * Creates and adds a group of polylines or polygons to the collection.
  6433.          */
  6434.     [
  6435.          helpcontext(0x1004006D)
  6436.         ,helpstring("Creates and adds a group of polylines or polygons to the collection.")
  6437.     ]
  6438.     HRESULT  AddPolys(
  6439.         [in] ImsiPolyType Type, // Type of poly(s) to be added.
  6440.         [in] VARIANT* Coords,   // Array of (X, Y, Z) poly coordinates.
  6441.         [out, retval] GraphicSet** NewPolys // The newly created Graphic objects.
  6442.         );
  6443.  
  6444.         /**
  6445.          * Generates a bounding polygon array to use in drag operations.
  6446.          *
  6447.          * @see View::DragOutline
  6448.          */
  6449.     [
  6450.          helpcontext(0x1004006E)
  6451.         ,helpstring("Generates a bounding polygon array to use in drag operations.")
  6452.     ]
  6453.     HRESULT  CreateDragOutline(
  6454.         [in, out] VARIANT* Coords // Array of (X, Y, Z) polygon coordinates.
  6455.         );
  6456.  
  6457.         /**
  6458.          * Creates and adds a bunch of polylines to the collection.
  6459.          * The returned Graphics object contains a set with freshly created
  6460.          * polygons. The user can set properties, etc.
  6461.          */
  6462.     [
  6463.          helpcontext(0x1004006F)
  6464.         ,helpstring("Creates and adds a bunch of polylines to the collection.")
  6465.     ]
  6466.     HRESULT  AddPolylines(
  6467.         [in] long NumberOfPolylines, // number of polylines to create
  6468.         [in] VARIANT* Coords,   // SafeArray of triplets of coordinates.
  6469.         [in] IMSI_BOOL closed, // whether each polyline is closed
  6470.         [out, retval] GraphicSet** NewPolys // The newly created set of Graphic objects.
  6471.         );
  6472.  
  6473.         /**
  6474.          * Finds the Graphic object in the collection with the given ID.
  6475.          */
  6476.     [
  6477.          helpcontext(0x10040070)
  6478.         ,helpstring("Finds the Graphic object in the collection with the given ID.")
  6479.     ]
  6480.     HRESULT  GraphicFromID(
  6481.         [in] long ID, // ID of Graphic object.
  6482.         [out, retval] IGraphic** prop // The Graphic object.
  6483.         );
  6484.  
  6485.         /**
  6486.          * Creates and adds an attribute definition Graphic object to the collection.  
  6487.          */
  6488.     [
  6489.          helpcontext(0x10040071)
  6490.         ,helpstring("Creates and adds an attribute definition Graphic object to the collection.")
  6491.     ]
  6492.     HRESULT  AddAttributeDefinition(
  6493.         [in] BSTR Tag, // The text string for the attribute definition tag.
  6494.         [in] double X0, // X coordinate of attdef's starting point.
  6495.         [in] double Y0, // Y coordinate of attdef's starting point.
  6496.         [in] double Z0, // Z coordinate of attdef's starting point.
  6497.         [in] double Height, // Height of attdef object.
  6498.         [in, optional] VARIANT* Angle, // Rotation angle of attdef in radians.
  6499.         [in, optional] VARIANT* Width, // Width of attdef object.
  6500.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  6501.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  6502.         [in, optional] VARIANT* AttFlags, // ImsiAttFlag values.
  6503.         [in, optional] VARIANT* Default, // Default value of attribute.
  6504.         [in, optional] VARIANT* Prompt, // Prompt for attribute.
  6505.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6506.         );
  6507.  
  6508.         /**
  6509.          * Adds a Region to the collection from the Graphic objects in the collection.
  6510.          *
  6511.          */
  6512.     [
  6513.          helpcontext(0x10040072)
  6514.         ,helpstring("Adds a Region to the collection from the Graphic objects in the collection.")
  6515.     ]
  6516.     HRESULT  AddRegion(
  6517.          [in, optional]    VARIANT*    pvarName
  6518.         ,[in, optional]    VARIANT*    pvarCopy
  6519.         ,[out, retval]    IGraphic** prop // The newly GraphicObject.
  6520.         );
  6521.     };
  6522.  
  6523.  
  6524.     /**
  6525.      * A layer in a TurboCAD drawing.
  6526.      */
  6527.     [
  6528.          object
  6529.         ,uuid(6A481115-E531-11CF-A115-00A024158DAF)
  6530.         ,oleautomation
  6531.         ,dual
  6532.         ,helpcontext(0x10050000)
  6533.         ,helpstring("A TurboCAD layer.")
  6534.     ]
  6535.     interface Layer : IDispatch
  6536.     {
  6537.  
  6538.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  6539.  
  6540.         /**
  6541.          * Returns an Application object that represents the owner of the specified object.
  6542.          */
  6543.         [
  6544.              propget
  6545.             ,helpcontext(0x10050001)
  6546.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  6547.         ]
  6548.         HRESULT  Application(
  6549.             [out, retval] IApplication** prop // The Application object.
  6550.             );
  6551.  
  6552.         /**
  6553.          * Returns the number of items in the collection.
  6554.          */
  6555.         [
  6556.              propget
  6557.             ,helpcontext(0x10050002)
  6558.             ,helpstring("Returns the number of items in the collection.")
  6559.         ]
  6560.         HRESULT  Count(
  6561.             [out, retval] long* prop // The number of items.
  6562.             );
  6563.  
  6564.         /**
  6565.          * Returns the Drawing object that owns the object.
  6566.          */
  6567.         [
  6568.              propget
  6569.             ,helpcontext(0x10050003)
  6570.             ,helpstring("Returns the Drawing object that owns the object.")
  6571.         ]
  6572.         HRESULT  Drawing(
  6573.             [out, retval] IDrawing** prop // The Drawing object.
  6574.             );
  6575.  
  6576.         /**
  6577.          * Returns part of a collection.
  6578.          */
  6579.         [
  6580.              propget
  6581.             ,id(DISPID_VALUE)
  6582.             ,helpcontext(0x10050004)
  6583.             ,helpstring("Returns part of a collection.")
  6584.         ]
  6585.         HRESULT  Item(
  6586.             [in] VARIANT* Index, // Index of item to return.
  6587.             [out, retval] IGraphic** prop // The item.
  6588.             );
  6589.  
  6590.         /**
  6591.          * Returns the parent object for the specified object.
  6592.          */
  6593.         [
  6594.              propget
  6595.             ,helpcontext(0x10050005)
  6596.             ,helpstring("Returns the parent object for the specified object.")
  6597.         ]
  6598.         HRESULT  Parent(
  6599.             [out, retval] IDispatch** prop // The parent object.
  6600.             );
  6601.         /**
  6602.          * Creates an enumeration object.
  6603.          */
  6604.         [
  6605.              propget
  6606.             ,restricted
  6607.             ,id(DISPID_NEWENUM)
  6608.             ,helpcontext(0x10050006)
  6609.             ,helpstring("Private.  Creates an enumeration object.")
  6610.         ]
  6611.         HRESULT  _NewEnum(
  6612.             [out, retval] IUnknown** prop // The enumeration object.
  6613.             );
  6614.  
  6615.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  6616.  
  6617. #ifndef METHOD_OVERFLOW_BUG
  6618.  
  6619.         /**
  6620.          * Applies a Style object to the contents of the collection.
  6621.          */
  6622.         [
  6623.              helpcontext(0x10050007)
  6624.             ,helpstring("Applies a Style object to the contents of the collection.")
  6625.             ,restricted, hidden
  6626.         ]
  6627.         HRESULT  ApplyStyle(
  6628.             [in] Style* StyleToApply // The Style object to apply.
  6629.             );
  6630.  
  6631.         /**
  6632.          * Checks the spelling of all the text Graphic object's in the collection.
  6633.          */
  6634.         [
  6635.              helpcontext(0x10050008)
  6636.             ,helpstring("Checks the spelling of all the text Graphic object's in the collection.")
  6637.             ,restricted, hidden
  6638.         ]
  6639.         HRESULT  CheckSpelling(
  6640.         [in, optional] VARIANT* CustomDictionary, // The name of a custom dictionary.
  6641.         [in, optional] VARIANT* IgnoreUppercase, // True to ignore case.
  6642.         [in, optional] VARIANT* AlwaysSuggest, // True to suggest corrections.
  6643.         [in, optional] VARIANT* CustomDictionary2, // The name of a custom dictionary.
  6644.         [in, optional] VARIANT* CustomDictionary3, // The name of a custom dictionary.
  6645.         [in, optional] VARIANT* CustomDictionary4, // The name of a custom dictionary.
  6646.         [in, optional] VARIANT* CustomDictionary5, // The name of a custom dictionary.
  6647.         [in, optional] VARIANT* CustomDictionary6, // The name of a custom dictionary.
  6648.         [in, optional] VARIANT* CustomDictionary7, // The name of a custom dictionary.
  6649.         [in, optional] VARIANT* CustomDictionary8, // The name of a custom dictionary.
  6650.         [in, optional] VARIANT* CustomDictionary9, // The name of a custom dictionary.
  6651.         [in, optional] VARIANT* CustomDictionary10 // The name of a custom dictionary.
  6652.         );
  6653.  
  6654.         /**
  6655.          * Adds a hatch pattern to the collection from the Graphic objects in the collection.
  6656.          *
  6657.          * @see TCADAPI TCWCreateHatch function
  6658.          */
  6659.     [
  6660.          helpcontext(0x10050009)
  6661.         ,helpstring("Adds a hatch pattern to the collection from the Graphic objects in the collection.")
  6662.         ,restricted, hidden
  6663.     ]
  6664.     HRESULT  AddHatch(
  6665.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6666.         );
  6667.  
  6668.         /**
  6669.          * Creates a Style object based on the contents of the collection.
  6670.          */
  6671.         [
  6672.              helpcontext(0x1005000A)
  6673.             ,helpstring("Creates a Style object based on the contents of the collection.")
  6674.             ,restricted, hidden
  6675.         ]
  6676.         HRESULT  CreateStyle(
  6677.             [in] Style* BasedOn, // The style to base the new Style object on.
  6678.             [out, retval] Style** prop // The newly created Style object.
  6679.             );
  6680.  
  6681.         /**
  6682.          * Creates and adds an OLE object to the collection.
  6683.          */
  6684.         [
  6685.              helpcontext(0x1005000B)
  6686.             ,helpstring("Creates and adds an OLE object to the collection.")
  6687.             ,restricted, hidden
  6688.         ]
  6689.         HRESULT  AddObject(
  6690.             [in, optional] VARIANT* ClassType, // Name of data format to paste.
  6691.             [in, optional] VARIANT* FileName, // Name of file to create object or link from.
  6692.             [in, optional] VARIANT* LinkToFile, // True if object is a link.
  6693.             [in, optional] VARIANT* DisplayAsIcon, // True to display as icon.
  6694.             [in, optional] VARIANT* IconFileName, // File containing icon.
  6695.             [in, optional] VARIANT* IconIndex, // Index of icon to use if displaying as icon.
  6696.             [in, optional] VARIANT* IconLabel, // Label to display if displaying as icon.
  6697.             [in, optional] VARIANT* X, // X coordinate of center of object.
  6698.             [in, optional] VARIANT* Y, // Y coordinate of center of object.
  6699.             [in, optional] VARIANT* Z, // Z coordinate of center of object.
  6700.             [in, optional] VARIANT* Width, // Width of object.
  6701.             [in, optional] VARIANT* Height, // Height of object.
  6702.             [in, optional] VARIANT* Anchor, // TODO: What's this for?
  6703.             [out, retval] IGraphic** prop // The newly created Graphic object.
  6704.             );
  6705.  
  6706.         /**
  6707.          * Creates and adds a single line segment to the collection.
  6708.          */
  6709.     [
  6710.          helpcontext(0x1005000C)
  6711.         ,helpstring("Creates and adds a single line segment to the collection.")
  6712.         ,restricted, hidden
  6713.     ]
  6714.     HRESULT  AddLineTanArcPoint(
  6715.         [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  6716.         [in] double X0, // X coordinate on arc for line endpoint.
  6717.         [in] double Y0, // Y coordinate on arc for line endpoint.
  6718.         [in] double Z0, // Z coordinate on arc for line endpoint.
  6719.         [in] double length, // length of tangent line.
  6720.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6721.         );
  6722.  
  6723.         /**
  6724.          * Creates and adds a single line segment to the collection.
  6725.          */
  6726.     [
  6727.          helpcontext(0x1005000D)
  6728.         ,helpstring("Creates and adds a single line segment to the collection.")
  6729.         ,restricted, hidden
  6730.     ]
  6731.     HRESULT  AddLineTanToArc(
  6732.         [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  6733.         [in] double X0, // X coordinate on arc for the line's first endpoint.
  6734.         [in] double Y0, // Y coordinate on arc for the line's first endpoint.
  6735.         [in] double Z0, // Z coordinate on arc for the line's first endpoint.
  6736.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6737.         );
  6738.  
  6739.         /**
  6740.          * Creates and adds a single line segment to the collection.
  6741.          */
  6742.     [
  6743.          helpcontext(0x1005000E)
  6744.         ,helpstring("Creates and adds a single line segment to the collection.")
  6745.         ,restricted, hidden
  6746.     ]
  6747.     HRESULT  AddLineTanFromArc(
  6748.         [in] IGraphic* TangentFrom, // Arc to draw line tangent from.
  6749.         [in] double X0, // X coordinate on arc for the line's second endpoint.
  6750.         [in] double Y0, // Y coordinate on arc for the line's second endpoint.
  6751.         [in] double Z0, // Z coordinate on arc for the line's second endpoint.
  6752.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6753.         );
  6754.  
  6755.         /**
  6756.          * Creates and adds a single line segment to the collection.
  6757.          */
  6758.     [
  6759.          helpcontext(0x1005000F)
  6760.         ,helpstring("Creates and adds a single line segment to the collection.")
  6761.         ,restricted, hidden
  6762.     ]
  6763.     HRESULT  AddLineTan2Arcs(
  6764.         [in] IGraphic* Arc1, // First arc.
  6765.         [in] IGraphic* Arc2, // Second arc.
  6766.         [in] IMSI_BOOL CounterClockwise, // True if tangent direction is counterclockwise.
  6767.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6768.         );
  6769.  
  6770.         /**
  6771.          * Creates and adds a multi segment leader (callout) line to the collection.
  6772.          * The returned Graphic object contains only a beginning vertex.  The user must
  6773.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  6774.          * and a Graphic.Finish call to complete the Graphic object.
  6775.          */
  6776.     [
  6777.          helpcontext(0x10050010)
  6778.         ,helpstring("Creates and adds a multi segment leader (callout) line to the collection.")
  6779.         ,restricted, hidden
  6780.     ]
  6781.     HRESULT  AddDimensionLeader(
  6782.         [in] double X0, // X coordinate of the first endpoint.
  6783.         [in] double Y0, // Y coordinate of the first endpoint.
  6784.         [in] double Z0, // Z coordinate of the first endpoint.
  6785.         [in, optional] BSTR Text, // The text for the leader.
  6786.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6787.         );
  6788.  
  6789.         /**
  6790.          * Creates and adds a baseline dimension to the collection.
  6791.          * The returned Graphic object contains only a beginning vertex.  The user must
  6792.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  6793.          * and a Graphic.Finish call to complete the Graphic object.
  6794.          */
  6795.     [
  6796.          helpcontext(0x10050011)
  6797.         ,helpstring("Creates and adds a WHATEVER to the collection.")
  6798.         ,restricted, hidden
  6799.     ]
  6800.     HRESULT  AddDimensionBaseline(
  6801.         [in] IGraphic* AddTo, // dimension line to add baseline dimension to.
  6802.         [in] double X0, // X coordinate of second extension line.
  6803.         [in] double Y0, // Y coordinate of second extension line.
  6804.         [in] double Z0, // Z coordinate of second extension line.
  6805.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6806.         );
  6807.  
  6808.         /**
  6809.          * Creates and adds a continuous dimension to the collection.
  6810.          * The returned Graphic object contains only a beginning vertex.  The user must
  6811.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  6812.          * and a Graphic.Finish call to complete the Graphic object.
  6813.          */
  6814.     [
  6815.          helpcontext(0x10050012)
  6816.         ,helpstring("Creates and adds a continuous dimension to the collection.")
  6817.         ,restricted, hidden
  6818.     ]
  6819.     HRESULT  AddDimensionContinuous(
  6820.         [in] IGraphic* AddTo, // dimension line to add continuous dimension to.
  6821.         [in] double X0, // X coordinate of second extension line.
  6822.         [in] double Y0, // Y coordinate of second extension line.
  6823.         [in] double Z0, // Z coordinate of second extension line.
  6824.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6825.         );
  6826.  
  6827.         /**
  6828.          * Creates and adds a single segment double line to the collection.
  6829.          *
  6830.          * @see TCADAPI TCWDoubleLineSingle function
  6831.          */
  6832.     [
  6833.          helpcontext(0x10050013)
  6834.         ,helpstring("Creates and adds a single segment double line to the collection.")
  6835.         ,restricted, hidden
  6836.     ]
  6837.     HRESULT  AddDoubleLineSingle(
  6838.         [in] double X0, // X coordinate of the first point.
  6839.         [in] double Y0, // Y coordinate of the first point.
  6840.         [in] double Z0, // Z coordinate of the first point.
  6841.         [in] double X1, // X coordinate of the second point.
  6842.         [in] double Y1, // Y coordinate of the second point.
  6843.         [in] double Z1, // Z coordinate of the second point.
  6844.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6845.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6846.         );
  6847.  
  6848.         /**
  6849.          * Creates and adds a double regular polygon to the collection.
  6850.          *
  6851.          * @see TCADAPI TCWDoubleLinePolygon function
  6852.          */
  6853.     [
  6854.          helpcontext(0x10050014)
  6855.         ,helpstring("Creates and adds a double regular polygon to the collection.")
  6856.         ,restricted, hidden
  6857.     ]
  6858.     HRESULT  AddDoubleLinePolygon(
  6859.         [in] double X0, // X coordinate of the center point.
  6860.         [in] double Y0, // Y coordinate of the center point.
  6861.         [in] double Z0, // Z coordinate of the center point.
  6862.         [in] double X1, // X coordinate of the corner point.
  6863.         [in] double Y1, // Y coordinate of the corner point.
  6864.         [in] double Z1, // Z coordinate of the corner point.
  6865.         [in] long Sides, // Number of sides.
  6866.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6867.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6868.         );
  6869.  
  6870.         /**
  6871.          * Creates and adds a double rectangle to the collection.
  6872.          *
  6873.          * @see TCADAPI TCWDoubleLineRectangle function
  6874.          */
  6875.     [
  6876.          helpcontext(0x10050015)
  6877.         ,helpstring("Creates and adds a double rectangle to the collection.")
  6878.         ,restricted, hidden
  6879.     ]
  6880.     HRESULT  AddDoubleLineRectangle(
  6881.         [in] double X0, // X coordinate of the upper left corner.
  6882.         [in] double Y0, // Y coordinate of the upper left corner.
  6883.         [in] double Z0, // Z coordinate of the upper left corner.
  6884.         [in] double X1, // X coordinate of the lower right corner.
  6885.         [in] double Y1, // Y coorindate of the lower right corner.
  6886.         [in] double Z1, // Z coorindate of the lower right corner.
  6887.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6888.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6889.         );
  6890.  
  6891.         /**
  6892.          * Creates and adds a double rotated rectangle to the collection.
  6893.          *
  6894.          * @see TCADAPI TCWDoubleLineRotatedRectangle function
  6895.          */
  6896.     [
  6897.          helpcontext(0x10050016)
  6898.         ,helpstring("Creates and adds a double rotated rectangle to the collection.")
  6899.         ,restricted, hidden
  6900.     ]
  6901.     HRESULT  AddDoubleLineRotatedRectangle(
  6902.         [in] double X0, // X coordinate of the upper left corner.
  6903.         [in] double Y0, // Y coordinate of the upper left corner.
  6904.         [in] double Z0, // Z coordinate of the upper left corner.
  6905.         [in] double X1, // X coordinate of the lower right corner.
  6906.         [in] double Y1, // Y coorindate of the lower right corner.
  6907.         [in] double Z1, // Z coorindate of the lower right corner.
  6908.         [in] double Angle, // Angle of rotation in radians.
  6909.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6910.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6911.         );
  6912.  
  6913.         /**
  6914.          * Creates and adds a double line to the collection.
  6915.          *
  6916.          * @see TCADAPI TCWDoubleLinePerpendicular function
  6917.          */
  6918.     [
  6919.          helpcontext(0x10050017)
  6920.         ,helpstring("Creates and adds a double line to the collection.")
  6921.         ,restricted, hidden
  6922.     ]
  6923.     HRESULT  AddDoubleLinePerpendicular(
  6924.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  6925.         [in] double X0, // X coordinate of the point on the existing line.
  6926.         [in] double Y0, // Y coordinate of the point on the existing line.
  6927.         [in] double Z0, // Z coordinate of the point on the existing line.
  6928.         [in] double X1, // X coordinate of the second point on the new line.
  6929.         [in] double Y1, // Y coordinate of the second point on the new line.
  6930.         [in] double Z1, // Z coordinate of the second point on the new line.
  6931.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6932.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6933.         );
  6934.  
  6935.         /**
  6936.          * Creates and adds a multiple segment double line to the collection.
  6937.          * The returned Graphic object contains only a beginning vertex.  The user must
  6938.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  6939.          * and a Graphic.Finish call to complete the Graphic object.
  6940.          *
  6941.          * @see TCADAPI TCWDoubleLineMultiline function
  6942.          */
  6943.     [
  6944.          helpcontext(0x10050018)
  6945.         ,helpstring("Creates and adds a multiple segment double line to the collection.")
  6946.         ,restricted, hidden
  6947.     ]
  6948.     HRESULT  AddDoubleLineMultiline(
  6949.         [in] double X0, // X coordinate of first endpoint.
  6950.         [in] double Y0, // Y coordinate of first endpoint.
  6951.         [in] double Z0, // Z coordinate of first endpoint.
  6952.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6953.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6954.         );
  6955.  
  6956.         /**
  6957.          * Creates and adds a double irregular polygon to the collection.
  6958.          * The returned Graphic object contains only a beginning vertex.  The user must
  6959.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  6960.          * and a Graphic.Close call to complete the Graphic object.
  6961.          *
  6962.          * @see TCADAPI TCWDoubleLineIrregularPolygon function
  6963.          */
  6964.     [
  6965.          helpcontext(0x10050019)
  6966.         ,helpstring("Creates and adds a double irregular polygon to the collection.")
  6967.         ,restricted, hidden
  6968.     ]
  6969.     HRESULT  AddDoubleLineIrregularPolygon(
  6970.         [in] double X0, // X coordinate of first endpoint.
  6971.         [in] double Y0, // Y coordinate of first endpoint.
  6972.         [in] double Z0, // Z coordinate of first endpoint.
  6973.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6974.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6975.         );
  6976.  
  6977.         /**
  6978.          * Creates and adds a double line to the collection.
  6979.          *
  6980.          * @see TCADAPI TCWDoubleLineParallel function
  6981.          */
  6982.     [
  6983.          helpcontext(0x1005001A)
  6984.         ,helpstring("Creates and adds a double line to the collection.")
  6985.         ,restricted, hidden
  6986.     ]
  6987.     HRESULT  AddDoubleLineParallel(
  6988.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  6989.         [in] double X0, // X coordinate of the new line.
  6990.         [in] double Y0, // Y coordinate of the new line.
  6991.         [in] double Z0, // Z coordinate of the new line.
  6992.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6993.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6994.         );
  6995.  
  6996.         /**
  6997.          * Creates and adds a circle to the collection.
  6998.          */
  6999.     [
  7000.          helpcontext(0x1005001B)
  7001.         ,helpstring("Creates and adds a circle to the collection.")
  7002.         ,restricted, hidden
  7003.     ]
  7004.     HRESULT  AddCircleTanToArc(
  7005.         [in] IGraphic* TangentTo, // Arc or circle to draw new circle tangent to.
  7006.         [in] double X0, // X coordinate of the new circle's center point.
  7007.         [in] double Y0, // Y coordinate of the new circle's center point.
  7008.         [in] double Z0, // Z coordinate of the new circle's center point.
  7009.         [in] double X1, // X coordinate of the new circle's radius point.
  7010.         [in] double Y1, // Y coordinate of the new circle's radius point.
  7011.         [in] double Z1, // Z coordinate of the new circle's radius point.
  7012.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7013.         );
  7014.  
  7015.         /**
  7016.          * Creates and adds a circle to the collection.
  7017.          */
  7018.     [
  7019.          helpcontext(0x1005001C)
  7020.         ,helpstring("Creates and adds a circle to the collection.")
  7021.         ,restricted, hidden
  7022.     ]
  7023.     HRESULT  AddCircleTanToLine(
  7024.         [in] IGraphic* TangentTo, // Line to draw new circle tangent to.
  7025.         [in] double X0, // X coordinate of the new circle's center point.
  7026.         [in] double Y0, // Y coordinate of the new circle's center point.
  7027.         [in] double Z0, // Z coordinate of the new circle's center point.
  7028.         [in] double X1, // X coordinate of the new circle's radius point.
  7029.         [in] double Y1, // Y coordinate of the new circle's radius point.
  7030.         [in] double Z1, // Z coordinate of the new circle's radius point.
  7031.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7032.         );
  7033.  
  7034.         /**
  7035.          * Creates and adds a circle to the collection.
  7036.          */
  7037.     [
  7038.          helpcontext(0x1005001D)
  7039.         ,helpstring("Creates and adds a circle to the collection.")
  7040.         ,restricted, hidden
  7041.     ]
  7042.     HRESULT  AddCircleTan3Arcs(
  7043.         [in] IGraphic* Arc1, // First arc or circle.
  7044.         [in] IGraphic* Arc2, // Second arc or circle.
  7045.         [in] IGraphic* Arc3, // Third arc or circle.
  7046.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7047.         );
  7048.  
  7049.         /**
  7050.          * Creates and adds an arc to the collection.
  7051.          */
  7052.     [
  7053.          helpcontext(0x1005001E)
  7054.         ,helpstring("Creates and adds an arc to the collection.")
  7055.         ,restricted, hidden
  7056.     ]
  7057.     HRESULT  AddArcTanToArc(
  7058.         [in] IGraphic* TangentTo, // Arc or circle to draw arc tangent to.
  7059.         [in] double X0, // X coordinate of new arc's radius point.
  7060.         [in] double Y0, // Y coordinate of new arc's radius point.
  7061.         [in] double Z0, // Z coordinate of new arc's radius ponit.
  7062.         [in] double X1, // X coordinate of point on existing arc.
  7063.         [in] double Y1, // Y coordinate of point on existing arc.
  7064.         [in] double Z1, // Z coordinate of ponit on existing arc.
  7065.         [in] double StartAngle, // Starting angle in radians.
  7066.         [in] double EndAngle, // Ending angle in radians.
  7067.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7068.         );
  7069.  
  7070.         /**
  7071.          * Creates and adds an arc to the collection.
  7072.          */
  7073.     [
  7074.          helpcontext(0x1005001F)
  7075.         ,helpstring("Creates and adds an arc to the collection.")
  7076.         ,restricted, hidden
  7077.     ]
  7078.     HRESULT  AddArcTanToLine(
  7079.         [in] IGraphic* TangentTo, // Line to draw arc tangent to.
  7080.         [in] double X0, // X coordinate of new arc's radius point.
  7081.         [in] double Y0, // Y coordinate of new arc's radius point.
  7082.         [in] double Z0, // Z coordinate of new arc's radius ponit.
  7083.         [in] double X1, // X coordinate of point on existing line.
  7084.         [in] double Y1, // Y coordinate of point on existing line.
  7085.         [in] double Z1, // Z coordinate of ponit on existing line.
  7086.         [in] double StartAngle, // Starting angle in radians.
  7087.         [in] double EndAngle, // Ending angle in radians.
  7088.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7089.         );
  7090.  
  7091.         /**
  7092.          * Creates and adds an arc to the collection.
  7093.          */
  7094.     [
  7095.          helpcontext(0x10050020)
  7096.         ,helpstring("Creates and adds an arc to the collection.")
  7097.         ,restricted, hidden
  7098.     ]
  7099.     HRESULT  AddArcTanTo3Arcs(
  7100.         [in] IGraphic* Arc1, // First arc or circle.
  7101.         [in] IGraphic* Arc2, // Second arc or circle.
  7102.         [in] IGraphic* Arc3, // Third arc or circle.
  7103.         [in] double StartAngle, // Starting angle in radians.
  7104.         [in] double EndAngle, // Ending angle in radians.
  7105.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7106.         );
  7107.  
  7108.         /**
  7109.          * Creates and adds a horizontal dimension to the collection.
  7110.          *
  7111.          * @see TCADAPI TCWDimensionHorizontal, TCWDimensionHorizontalEntity functions
  7112.          */
  7113.     [
  7114.          helpcontext(0x10050021)
  7115.         ,helpstring("Creates and adds a horizontal dimension to the collection.")
  7116.         ,restricted, hidden
  7117.     ]
  7118.     HRESULT  AddDimensionHorizontal(
  7119.         [in] double X0, // X coordinate of first extension line.
  7120.         [in] double Y0, // Y coordinate of first extension line.
  7121.         [in] double Z0, // Z coordinate of first extension line.
  7122.         [in] double X1, // X coordinate of second extension line.
  7123.         [in] double Y1, // Y coordinate of second extension line.
  7124.         [in] double Z1, // Z coordinate of second extension line.
  7125.         [in] double X2, // X coordinate of dimension.
  7126.         [in] double Y2, // Y coordinate of dimension.
  7127.         [in] double Z2, // Z coordinate of dimension.
  7128.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7129.         );
  7130.  
  7131.         /**
  7132.          * Creates and adds a vertical dimension to the collection.
  7133.          *
  7134.          * @see TCADAPI TCWDimensionVertical, TCWDimensionVerticalEntity functions
  7135.          */
  7136.     [
  7137.          helpcontext(0x10050022)
  7138.         ,helpstring("Creates and adds a vertical dimension to the collection.")
  7139.         ,restricted, hidden
  7140.     ]
  7141.     HRESULT  AddDimensionVertical(
  7142.         [in] double X0, // X coordinate of first extension line.
  7143.         [in] double Y0, // Y coordinate of first extension line.
  7144.         [in] double Z0, // Z coordinate of first extension line.
  7145.         [in] double X1, // X coordinate of second extension line.
  7146.         [in] double Y1, // Y coordinate of second extension line.
  7147.         [in] double Z1, // Z coordinate of second extension line.
  7148.         [in] double X2, // X coordinate of dimension.
  7149.         [in] double Y2, // Y coordinate of dimension.
  7150.         [in] double Z2, // Z coordinate of dimension.
  7151.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7152.         );
  7153.  
  7154.         /**
  7155.          * Creates and adds a parallel dimension to the collection.
  7156.          *
  7157.          * @see TCADAPI TCWDimensionParallel, TCWDimensionParallelEntity functions
  7158.          */
  7159.     [
  7160.          helpcontext(0x10050023)
  7161.         ,helpstring("Creates and adds a parallel dimension to the collection.")
  7162.         ,restricted, hidden
  7163.     ]
  7164.     HRESULT  AddDimensionParallel(
  7165.         [in] double X0, // X coordinate of first extension line.
  7166.         [in] double Y0, // Y coordinate of first extension line.
  7167.         [in] double Z0, // Z coordinate of first extension line.
  7168.         [in] double X1, // X coordinate of second extension line.
  7169.         [in] double Y1, // Y coordinate of second extension line.
  7170.         [in] double Z1, // Z coordinate of second extension line.
  7171.         [in] double X2, // X coordinate of dimension.
  7172.         [in] double Y2, // Y coordinate of dimension.
  7173.         [in] double Z2, // Z coordinate of dimension.
  7174.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7175.         );
  7176.  
  7177.         /**
  7178.          * Creates and adds a rotated dimension to the collection.
  7179.          */
  7180.     [
  7181.          helpcontext(0x10050024)
  7182.         ,helpstring("Creates and adds a rotated dimension to the collection.")
  7183.         ,restricted, hidden
  7184.     ]
  7185.     HRESULT  AddDimensionRotated(
  7186.         [in] double X0, // X coordinate of first endpoint defining angle and direction.
  7187.         [in] double Y0, // Y coordinate of first endpoint defining angle and direction.
  7188.         [in] double Z0, // Z coordinate of first endpoint defining angle and direction.
  7189.         [in] double X1, // X coordinate of second endpoint defining angle and direction.
  7190.         [in] double Y1, // Y coordinate of second endpoint defining angle and direction.
  7191.         [in] double Z1, // Z coordinate of second endpoint defining angle and direction.
  7192.         [in] double X2, // X coordinate of first extension line.
  7193.         [in] double Y2, // Y coordinate of first extension line.
  7194.         [in] double Z2, // Z coordinate of first extension line.
  7195.         [in] double X3, // X coordinate of second extension line.
  7196.         [in] double Y3, // Y coordinate of second extension line.
  7197.         [in] double Z3, // Z coordinate of second extension line.
  7198.         [in] double X4, // X coordinate of dimension.
  7199.         [in] double Y4, // Y coordinate of dimension.
  7200.         [in] double Z4, // Z coordinate of dimension.
  7201.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7202.         );
  7203.  
  7204.         /**
  7205.          * Creates and adds a datum dimension to the collection.
  7206.          */
  7207.     [
  7208.          helpcontext(0x10050025)
  7209.         ,helpstring("Creates and adds a datum dimension to the collection.")
  7210.         ,restricted, hidden
  7211.     ]
  7212.     HRESULT  AddDimensionDatum(
  7213.         [in] double X0, // X coordinate of first extension line.
  7214.         [in] double Y0, // Y coordinate of first extension line.
  7215.         [in] double Z0, // Z coordinate of first extension line.
  7216.         [in] double X1, // X coordinate of second extension line.
  7217.         [in] double Y1, // Y coordinate of second extension line.
  7218.         [in] double Z1, // Z coordinate of second extension line.
  7219.         [in] double X2, // X coordinate of dimension.
  7220.         [in] double Y2, // Y coordinate of dimension.
  7221.         [in] double Z2, // Z coordinate of dimension.
  7222.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7223.         );
  7224.  
  7225.         /**
  7226.          * Creates and adds an angular dimension to the collection.
  7227.          */
  7228.     [
  7229.          helpcontext(0x10050026)
  7230.         ,helpstring("Creates and adds an angular dimension to the collection.")
  7231.         ,restricted, hidden
  7232.     ]
  7233.     HRESULT  AddDimensionAngular(
  7234.         [in] IGraphic* Line1, // First graphic.
  7235.         [in] IGraphic* Line2, // Second graphic.
  7236.         [in] double X0, // X coordinate of dimension.
  7237.         [in] double Y0, // Y coordinate of dimension.
  7238.         [in] double Z0, // Z coordinate of dimension.
  7239.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7240.         );
  7241.  
  7242.         /**
  7243.          * Creates and adds a radial dimension to the collection.
  7244.          */
  7245.     [
  7246.          helpcontext(0x10050027)
  7247.         ,helpstring("Creates and adds a radial dimension to the collection.")
  7248.         ,restricted, hidden
  7249.     ]
  7250.     HRESULT  AddDimensionRadius(
  7251.         [in] IGraphic* Arc, // Arc or circle.
  7252.         [in] double X0, // X coordinate of dimension text.
  7253.         [in] double Y0, // Y coordinate of dimension text.
  7254.         [in] double Z0, // Z coordinate of dimension text.
  7255.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7256.         );
  7257.  
  7258.         /**
  7259.          * Creates and adds a diameter dimension to the collection.
  7260.          */
  7261.     [
  7262.          helpcontext(0x10050028)
  7263.         ,helpstring("Creates and adds a diameter dimension to the collection.")
  7264.         ,restricted, hidden
  7265.     ]
  7266.     HRESULT  AddDimensionDiameter(
  7267.         [in] IGraphic* Arc, // Arc or circle.
  7268.         [in] double X0, // X coordinate of dimension text.
  7269.         [in] double Y0, // Y coordinate of dimension text.
  7270.         [in] double Z0, // Z coordinate of dimension text.
  7271.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7272.         );
  7273.  
  7274. #endif //METHOD_OVERFLOW_BUG
  7275.  
  7276.         /**
  7277.          * Creates and adds a new Graphic object to the collection.
  7278.          */
  7279.         [
  7280.              helpcontext(0x10050029)
  7281.             ,helpstring("Creates and adds a new Graphic object to the collection.")
  7282.         ]
  7283.         HRESULT  Add(
  7284.             [in, optional] VARIANT* GraphicType, // The type of the Graphic object.
  7285.             [in, optional] VARIANT* RegenMethod, // A RegenMethod object or index.
  7286.             [in, optional] VARIANT* Inherit, // True if the new Graphic object will inherit the properties of its parent.
  7287.             [in, optional] VARIANT* Style, // Not used in current implementation.
  7288.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  7289.             [in, optional] VARIANT* After, // The Graphic object or index that will precede the added Graphic object.
  7290.             [out, retval] IGraphic** prop // The newly created Graphic object.
  7291.             );
  7292.  
  7293.         /**
  7294.          * Adds an existing Graphic object to the collection.
  7295.          */
  7296.         [
  7297.              helpcontext(0x1005002A)
  7298.             ,helpstring("Adds an existing Graphic object to the collection.")
  7299.         ]
  7300.         HRESULT  AddGraphic(
  7301.             [in] IGraphic* Graphic,    // The Graphic object to add.
  7302.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  7303.             [in, optional] VARIANT* After // The Graphic object or index that will precede the added Graphic object.
  7304.             );
  7305.  
  7306.         /**
  7307.          * Returns the collection's bounding box.
  7308.          */
  7309.         [
  7310.              helpcontext(0x1005002B)
  7311.             ,helpstring("Returns the collection's bounding box.")
  7312.             ,restricted, hidden
  7313.         ]
  7314.         HRESULT  CalcBoundingBox(
  7315.             [in, optional] VARIANT* Transform, // A transformation Matrix object.
  7316.             [out, retval] BoundingBox** prop // The BoundingBox object.
  7317.             );
  7318.  
  7319.         /**
  7320.          * Clears the contents of the collection.
  7321.          */
  7322.         [
  7323.              helpcontext(0x1005002C)
  7324.             ,helpstring("Clears the contents of the collection.")
  7325.         ]
  7326.         HRESULT  Clear(
  7327.             [in, optional] VARIANT* CosmeticOnly // True to only clear cosmetics.
  7328.             );
  7329.  
  7330.         /**
  7331.          * Clears construction lines and arcs.
  7332.          *
  7333.          * @see TCADAPI TCWClearAllConstructions function.
  7334.          */
  7335.         [
  7336.              helpcontext(0x1005002D)
  7337.             ,helpstring("Clears construction lines and arcs.")
  7338.             ,restricted, hidden
  7339.         ]
  7340.         HRESULT  ClearConstruction(
  7341.             );
  7342.  
  7343.         /**
  7344.          * Copies the contents of the collection to the Clipboard.
  7345.          */
  7346.         [
  7347.              helpcontext(0x1005002E)
  7348.             ,helpstring("Copies the contents of the collection to the Clipboard.")
  7349.             ,restricted, hidden
  7350.         ]
  7351.         HRESULT  Copy(
  7352.             );
  7353.  
  7354.         /**
  7355.          * Cuts the contents of the collection to the Clipboard.
  7356.          */
  7357.         [
  7358.              helpcontext(0x1005002F)
  7359.             ,helpstring("Cuts the contents of the collection to the Clipboard.")
  7360.             ,restricted, hidden
  7361.         ]
  7362.         HRESULT  Cut(
  7363.             );
  7364.  
  7365.         /**
  7366.          * Draws all the Graphic objects in the collection.
  7367.          */
  7368.     [
  7369.          helpcontext(0x10050030)
  7370.         ,helpstring("Draws all the Graphic objects in the collection.")
  7371.         ,restricted, hidden
  7372.     ]
  7373.     HRESULT  Draw(
  7374.         [in] VARIANT* View // If supplied, the View object to draw on.
  7375.         );
  7376.  
  7377.         /**
  7378.          * Removes an item from the collection.
  7379.          */
  7380.         [
  7381.              helpcontext(0x10050031)
  7382.             ,helpstring("Removes an item from the collection.")
  7383.         ]
  7384.         HRESULT  Remove(
  7385.             [in] VARIANT* Index, // The index of item to be removed.
  7386.             [out, retval] IGraphic** prop // The Graphic object that was removed.
  7387.             );
  7388.  
  7389.         /**
  7390.          * Selects all the Graphic object's in the collection.
  7391.          *
  7392.          * @see TCADAPI TCWSelectAll function.
  7393.          */
  7394.         [
  7395.              helpcontext(0x10050032)
  7396.             ,helpstring("Selects all the Graphic object's in the collection.")
  7397.         ]
  7398.         HRESULT  Select(
  7399.             );
  7400.  
  7401.         /**
  7402.          * Unselects all the Graphic object's in the collection.
  7403.          *
  7404.          * @see TCADAPI TCWDeselectAll function.
  7405.          */
  7406.         [
  7407.              helpcontext(0x10050033)
  7408.             ,helpstring("Unselects all the Graphic object's in the collection.")
  7409.         ]
  7410.         HRESULT  Unselect(
  7411.             );
  7412.  
  7413.         //////////////////////////// AddXXXMethods \\\\\\\\\\\\\\\\\\\\\\\\\\\\
  7414.  
  7415.         /**
  7416.          * Creates and adds a construction line to the collection.
  7417.          *
  7418.          * @see TCADAPI TCWConstructionAngularLine function
  7419.          */
  7420.     [
  7421.          helpcontext(0x10050034)
  7422.         ,helpstring("Creates and adds a construction line to the collection.")
  7423.     ]
  7424.     HRESULT  AddConstructionAngularLine(
  7425.         [in] double X0, // X coordinate of the first point on line.
  7426.         [in] double Y0, // Y coordinate of the first point on line.
  7427.         [in] double Z0, // Z coordinate of the first point on line.
  7428.         [in] double X1, // X coordinate of the second point on line.
  7429.         [in] double Y1, // Y coordinate of the second point on line.
  7430.         [in] double Z1, // Z coordinate of the second point on line.
  7431.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7432.         );
  7433.  
  7434.         /**
  7435.          * Creates and adds a construction line to the collection.
  7436.          *
  7437.          * @see TCADAPI TCWConstructionHorizontalLine function
  7438.          */
  7439.     [
  7440.          helpcontext(0x10050035)
  7441.         ,helpstring("Creates and adds a construction line to the collection.")
  7442.     ]
  7443.     HRESULT  AddConstructionHorizontalLine(
  7444.         [in] double X0, // X coordinate of the line.
  7445.         [in] double Y0, // Y coordinate of the line.
  7446.         [in] double Z0, // Z coordinate of the line.
  7447.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7448.         );
  7449.  
  7450.         /**
  7451.          * Creates and adds a construction line to the collection.
  7452.          *
  7453.          * @see TCADAPI TCWConstructionVerticalLine function
  7454.          */
  7455.     [
  7456.          helpcontext(0x10050036)
  7457.         ,helpstring("Creates and adds a construction line to the collection.")
  7458.     ]
  7459.     HRESULT  AddConstructionVerticalLine(
  7460.         [in] double X0, // X coordinate of the line.
  7461.         [in] double Y0, // Y coordinate of the line.
  7462.         [in] double Z0, // Z coordinate of the line.
  7463.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7464.         );
  7465.  
  7466.         /**
  7467.          * Creates and adds a construction circle to the collection.
  7468.          *
  7469.          * @see TCADAPI TCWConstructionCenterAndPointCircle function
  7470.          */
  7471.     [
  7472.          helpcontext(0x10050037)
  7473.         ,helpstring("Creates and adds a construction circle to the collection.")
  7474.     ]
  7475.     HRESULT  AddConstructionCenterAndPointCircle(
  7476.         [in] double X0, // X coordinate of the center point.
  7477.         [in] double Y0, // Y coordinate of the center point.
  7478.         [in] double Z0, // Z coordinate of the center point.
  7479.         [in] double X1, // X coordinate of the perimeter point.
  7480.         [in] double Y1, // Y coordinate of the perimeter point.
  7481.         [in] double Z1, // Z coordinate of the perimeter point.
  7482.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7483.         );
  7484.  
  7485.         /**
  7486.          * Creates and adds a construction circle to the collection.
  7487.          *
  7488.          * @see TCADAPI TCWConstructionDoublePointCircle function
  7489.          */
  7490.     [
  7491.          helpcontext(0x10050038)
  7492.         ,helpstring("Creates and adds a construction circle to the collection.")
  7493.     ]
  7494.     HRESULT  AddConstructionDoublePointCircle(
  7495.         [in] double X0, // X coordinate of the first point.
  7496.         [in] double Y0, // Y coordinate of the first point.
  7497.         [in] double Z0, // Z coordinate of the first point.
  7498.         [in] double X1, // X coordinate of the second point.
  7499.         [in] double Y1, // Y coordinate of the second point.
  7500.         [in] double Z1, // Z coordinate of the second point.
  7501.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7502.         );
  7503.  
  7504.         /**
  7505.          * Creates and adds a construction circle to the collection.
  7506.          *
  7507.          * @see TCADAPI TCWConstructionTriplePointCircle function
  7508.          */
  7509.     [
  7510.          helpcontext(0x10050039)
  7511.         ,helpstring("Creates and adds a construction circle to the collection.")
  7512.     ]
  7513.     HRESULT  AddConstructionTriplePointCircle(
  7514.         [in] double X0, // X coordinate of the first point.
  7515.         [in] double Y0, // Y coordinate of the first point.
  7516.         [in] double Z0, // Z coordinate of the first point.
  7517.         [in] double X1, // X coordinate of the second point.
  7518.         [in] double Y1, // Y coordinate of the second point.
  7519.         [in] double Z1, // Z coordinate of the second point.
  7520.         [in] double X2, // X coordinate of the third point.
  7521.         [in] double Y2, // Y coordinate of the third point.
  7522.         [in] double Z2, // Z coordinate of the third point.
  7523.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7524.         );
  7525.  
  7526.         /**
  7527.          * Creates and adds a dot marker to the collection.
  7528.          *
  7529.          * @see TCADAPI TCWDot function
  7530.          */
  7531.     [
  7532.          helpcontext(0x1005003A)
  7533.         ,helpstring("Creates and adds a dot marker to the collection.")
  7534.     ]
  7535.     HRESULT  AddDot(
  7536.         [in] double X0, // X coordinate of the point.
  7537.         [in] double Y0, // Y coordinate of the point.
  7538.         [in] double Z0, // Z coordinate of the point.
  7539.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7540.         );
  7541.  
  7542.         /**
  7543.          * Creates and adds a star to the collection.
  7544.          *
  7545.          * @see TCADAPI TCWStar function
  7546.          */
  7547.     [
  7548.          helpcontext(0x1005003B)
  7549.         ,helpstring("Creates and adds a star marker to the collection.")
  7550.     ]
  7551.     HRESULT  AddStar(
  7552.         [in] double X0, // X coordinate of the point.
  7553.         [in] double Y0, // Y coordinate of the point.
  7554.         [in] double Z0, // Z coordinate of the point.
  7555.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7556.         );
  7557.  
  7558.         /**
  7559.          * Creates and adds a square marker to the collection.
  7560.          *
  7561.          * @see TCADAPI TCWSquare function
  7562.          */
  7563.     [
  7564.          helpcontext(0x1005003C)
  7565.         ,helpstring("Creates and adds a square marker to the collection.")
  7566.     ]
  7567.     HRESULT  AddSquare(
  7568.         [in] double X0, // X coordinate of the point.
  7569.         [in] double Y0, // Y coordinate of the point.
  7570.         [in] double Z0, // Z coordinate of the point.
  7571.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7572.         );
  7573.  
  7574.         /**
  7575.          * Creates and adds a cross marker to the collection.
  7576.          *
  7577.          * @see TCADAPI TCWCross function
  7578.          */
  7579.     [
  7580.          helpcontext(0x1005003D)
  7581.         ,helpstring("Creates and adds a cross marker to the collection.")
  7582.     ]
  7583.     HRESULT  AddCross(
  7584.         [in] double X0, // X coordinate of the point.
  7585.         [in] double Y0, // Y coordinate of the point.
  7586.         [in] double Z0, // Z coordinate of the point.
  7587.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7588.         );
  7589.  
  7590.         /**
  7591.          * Creates and adds a circle marker to the collection.
  7592.          *
  7593.          * @see TCADAPI TCWCircle function
  7594.          */
  7595.     [
  7596.          helpcontext(0x1005003E)
  7597.         ,helpstring("Creates and adds a circle marker to the collection.")
  7598.     ]
  7599.     HRESULT  AddCircle(
  7600.         [in] double X0, // X coordinate of the point.
  7601.         [in] double Y0, // Y coordinate of the point.
  7602.         [in] double Z0, // Z coordinate of the point.
  7603.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7604.         );
  7605.  
  7606.         /**
  7607.          * Creates and adds a single line segment to the collection.
  7608.          *
  7609.          * @see TCADAPI TCWLineSingle function
  7610.          */
  7611.     [
  7612.          helpcontext(0x1005003F)
  7613.         ,helpstring("Creates and adds a single line segment to the collection.")
  7614.     ]
  7615.     HRESULT  AddLineSingle(
  7616.         [in] double X0, // X coordinate of the first endpoint.
  7617.         [in] double Y0, // Y coordinate of the first endpoint.
  7618.         [in] double Z0, // Z coordinate of the first endpoint.
  7619.         [in] double X1, // X coordinate of the second endpoint.
  7620.         [in] double Y1, // Y coordinate of the second endpoint.
  7621.         [in] double Z1, // Z coordinate of the second endpoint.
  7622.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7623.         );
  7624.  
  7625.         /**
  7626.          * Creates and adds a regular polygon to the collection.
  7627.          *
  7628.          * @see TCADAPI TCWLinePolygon function
  7629.          */
  7630.     [
  7631.          helpcontext(0x10050040)
  7632.         ,helpstring("Creates and adds a regular polygon to the collection.")
  7633.     ]
  7634.     HRESULT  AddLinePolygon(
  7635.         [in] double X0, // X coordinate of the center point.
  7636.         [in] double Y0, // Y coordinate of the center point.
  7637.         [in] double Z0, // Z coordinate of the center point.
  7638.         [in] double X1, // X coordinate of the corner point.
  7639.         [in] double Y1, // Y coordinate of the corner point.
  7640.         [in] double Z1, // Z coordinate of the corner point.
  7641.         [in] long nsides, // number of sides.
  7642.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7643.         );
  7644.  
  7645.         /**
  7646.          * Creates and adds a rectangle to the collection.
  7647.          *
  7648.          * @see TCADAPI TCWLineRectangle function
  7649.          */
  7650.     [
  7651.          helpcontext(0x10050041)
  7652.         ,helpstring("Creates and adds a rectangle to the collection.")
  7653.     ]
  7654.     HRESULT  AddLineRectangle(
  7655.         [in] double X0, // X coordinate of the upper left corner.
  7656.         [in] double Y0, // Y coordinate of the upper left corner.
  7657.         [in] double Z0, // Z coordinate of the upper left corner.
  7658.         [in] double X1, // X coordinate of the lower right corner.
  7659.         [in] double Y1, // Y coorindate of the lower right corner.
  7660.         [in] double Z1, // Z coorindate of the lower right corner.
  7661.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7662.         );
  7663.  
  7664.         /**
  7665.          * Creates and adds a rotated rectangle to the collection.
  7666.          *
  7667.          * @see TCADAPI TCWLineRotatedRectangle function
  7668.          */
  7669.     [
  7670.          helpcontext(0x10050042)
  7671.         ,helpstring("Creates and adds a rotated rectangle to the collection.")
  7672.     ]
  7673.     HRESULT  AddLineRotatedRectangle(
  7674.         [in] double X0, // X coordinate of the upper left corner.
  7675.         [in] double Y0, // Y coordinate of the upper left corner.
  7676.         [in] double Z0, // Z coordinate of the upper left corner.
  7677.         [in] double X1, // X coordinate of the lower right corner.
  7678.         [in] double Y1, // Y coorindate of the lower right corner.
  7679.         [in] double Z1, // Z coorindate of the lower right corner.
  7680.         [in] double Height, // Height of the rectangle.
  7681.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7682.         );
  7683.  
  7684.         /**
  7685.          * Creates and adds a single line segment to the collection.
  7686.          *
  7687.          * @see TCADAPI TCWLinePerpendicular function
  7688.          */
  7689.     [
  7690.          helpcontext(0x10050043)
  7691.         ,helpstring("Creates and adds a single line segment to the collection.")
  7692.     ]
  7693.     HRESULT  AddLinePerpendicular(
  7694.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  7695.         [in] double X0, // X coordinate of the point on the existing line.
  7696.         [in] double Y0, // Y coordinate of the point on the existing line.
  7697.         [in] double Z0, // Z coordinate of the point on the existing line.
  7698.         [in] double X1, // X coordinate of the second point on the new line.
  7699.         [in] double Y1, // Y coordinate of the second point on the new line.
  7700.         [in] double Z1, // Z coordinate of the second point on the new line.
  7701.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7702.         );
  7703.  
  7704.         /**
  7705.          * Creates and adds a single line segment to the collection.
  7706.          *
  7707.          * @see TCADAPI TCWLineParallel function
  7708.          */
  7709.     [
  7710.          helpcontext(0x10050044)
  7711.         ,helpstring("Creates and adds a single line segment to the collection.")
  7712.     ]
  7713.     HRESULT  AddLineParallel(
  7714.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  7715.         [in] double X0, // X coordinate of the new line.
  7716.         [in] double Y0, // Y coordinate of the new line.
  7717.         [in] double Z0, // Z coordinate of the new line.
  7718.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7719.         );
  7720.  
  7721.         /**
  7722.          * Creates and adds a multiple segment line to the collection.
  7723.          * The returned Graphic object contains only a beginning vertex.  The user must
  7724.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  7725.          * and a Graphic.Finish call to complete the Graphic object.
  7726.          *
  7727.          * @see TCADAPI TCWLineMultiline function
  7728.          */
  7729.     [
  7730.          helpcontext(0x10050045)
  7731.         ,helpstring("Creates and adds a multiple segment line to the collection.")
  7732.     ]
  7733.     HRESULT  AddLineMultiline(
  7734.         [in] double X0, // X coordinate of first endpoint.
  7735.         [in] double Y0, // Y coordinate of first endpoint.
  7736.         [in] double Z0, // Z coordinate of first endpoint.
  7737.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7738.         );
  7739.  
  7740.         /**
  7741.          * Creates and adds an irregular polygon to the collection.
  7742.          * The returned Graphic object contains only a beginning vertex.  The user must
  7743.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  7744.          * and a Graphic.Close call to complete the Graphic object.
  7745.          *
  7746.          * @see TCADAPI TCWLineIrregularPolygon function
  7747.          */
  7748.     [
  7749.          helpcontext(0x10050046)
  7750.         ,helpstring("Creates and adds an irregular polygon to the collection.")
  7751.     ]
  7752.     HRESULT  AddLineIrregularPolygon(
  7753.         [in] double X0, // X coordinate of first endpoint.
  7754.         [in] double Y0, // Y coordinate of first endpoint.
  7755.         [in] double Z0, // Z coordinate of first endpoint.
  7756.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7757.         );
  7758.  
  7759.         /**
  7760.          * Creates and adds a bezier curve to the collection.
  7761.          * The returned Graphic object contains only a beginning vertex.  The user must
  7762.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  7763.          * and a Graphic.Finish call to complete the Graphic object.
  7764.          *
  7765.          * @see TCADAPI TCWCurveBezier function
  7766.          */
  7767.     [
  7768.          helpcontext(0x10050047)
  7769.         ,helpstring("Creates and adds a bezier curve to the collection.")
  7770.     ]
  7771.     HRESULT  AddCurveBezier(
  7772.         [in] double X0, // X coordinate of the first endpoint.
  7773.         [in] double Y0, // Y coordinate of the first endpoint.
  7774.         [in] double Z0, // Z coordinate of the first endpoint.
  7775.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7776.         );
  7777.  
  7778.         /**
  7779.          * Creates and adds a cubic spline curve to the collection.
  7780.          * The returned Graphic object contains only a beginning vertex.  The user must
  7781.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  7782.          * and a Graphic.Finish call to complete the Graphic object.
  7783.          *
  7784.          * @see TCADAPI TCWCurveSpline function
  7785.          */
  7786.     [
  7787.          helpcontext(0x10050048)
  7788.         ,helpstring("Creates and adds a cubic spline curve to the collection.")
  7789.     ]
  7790.     HRESULT  AddCurveSpline(
  7791.         [in] double X0, // X coordinate of the first endpoint.
  7792.         [in] double Y0, // Y coordinate of the first endpoint.
  7793.         [in] double Z0, // Z coordinate of the first endpoint.
  7794.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7795.         );
  7796.  
  7797.         /**
  7798.          * Creates and adds a circle to the collection.
  7799.          *
  7800.          * @see TCADAPI TCWCircleCenterAndPoint function
  7801.          */
  7802.     [
  7803.          helpcontext(0x10050049)
  7804.         ,helpstring("Creates and adds a circle to the collection.")
  7805.     ]
  7806.     HRESULT  AddCircleCenterAndPoint(
  7807.         [in] double X0, // X coordinate of the center point.
  7808.         [in] double Y0, // Y coordinate of the center point.
  7809.         [in] double Z0, // Z coordinate of the cneter point.
  7810.         [in] double X1, // X coordinate of the radius point.
  7811.         [in] double Y1, // Y coordinate of the radius point.
  7812.         [in] double Z1, // Z coordinate of the radius point.
  7813.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7814.         );
  7815.  
  7816.         /**
  7817.          * Creates and adds a circle to the collection.
  7818.          *
  7819.          * @see TCADAPI TCWCircleDoublePoint function
  7820.          */
  7821.     [
  7822.          helpcontext(0x1005004A)
  7823.         ,helpstring("Creates and adds a circle to the collection.")
  7824.     ]
  7825.     HRESULT  AddCircleDoublePoint(
  7826.         [in] double X0, // X coordinate of the first point.
  7827.         [in] double Y0, // Y coordinate of the first point.
  7828.         [in] double Z0, // Z coordinate of the first point.
  7829.         [in] double X1, // X coordinate of the second point.
  7830.         [in] double Y1, // Y coordinate of the second point.
  7831.         [in] double Z1, // Z coordinate of the second point.
  7832.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7833.         );
  7834.  
  7835.         /**
  7836.          * Creates and adds a circle to the collection.
  7837.          *
  7838.          * @see TCADAPI TCWCircleTriplePoint function
  7839.          */
  7840.     [
  7841.          helpcontext(0x1005004B)
  7842.         ,helpstring("Creates and adds a circle to the collection.")
  7843.     ]
  7844.     HRESULT  AddCircleTriplePoint(
  7845.         [in] double X0, // X coordinate of the first point.
  7846.         [in] double Y0, // Y coordinate of the first point.
  7847.         [in] double Z0, // Z coordinate of the first point.
  7848.         [in] double X1, // X coordinate of the second point.
  7849.         [in] double Y1, // Y coordinate of the second point.
  7850.         [in] double Z1, // Z coordinate of the second point.
  7851.         [in] double X2, // X coordinate of the third point.
  7852.         [in] double Y2, // Y coordinate of the third point.
  7853.         [in] double Z2, // Z coordinate of the third point.
  7854.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7855.         );
  7856.  
  7857.         /**
  7858.          * Creates and adds a ellipse to the collection.
  7859.          *
  7860.          * @see TCADAPI TCWEllipse function
  7861.          */
  7862.     [
  7863.          helpcontext(0x1005004C)
  7864.         ,helpstring("Creates and adds a ellipse to the collection.")
  7865.     ]
  7866.     HRESULT  AddEllipse(
  7867.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  7868.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  7869.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  7870.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  7871.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  7872.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  7873.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7874.         );
  7875.  
  7876.         /**
  7877.          * Creates and adds a ellipse to the collection.
  7878.          *
  7879.          * @see TCADAPI TCWEllipseRotatedEllipse function
  7880.          */
  7881.     [
  7882.          helpcontext(0x1005004D)
  7883.         ,helpstring("Creates and adds a ellipse to the collection.")
  7884.     ]
  7885.     HRESULT  AddEllipseRotatedEllipse(
  7886.         [in] double X0, // X coordinate of ellipse's center point.
  7887.         [in] double Y0, // Y coordinate of ellipse's center point.
  7888.         [in] double Z0, // Z coordinate of ellipse's center point.
  7889.         [in] double X1, // X coordinate of major axis radius point.
  7890.         [in] double Y1, // Y coordinate of major axis radius point.
  7891.         [in] double Z1, // Z coordinate of major axis radius point.
  7892.         [in] double X2, // X coordinate of minor axis radius point.
  7893.         [in] double Y2, // Y coordinate of minor axis radius point.
  7894.         [in] double Z2, // Z coordinate of minor axis radius point.
  7895.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7896.         );
  7897.  
  7898.         /**
  7899.          * Creates and adds a ellipse to the collection.
  7900.          *
  7901.          * @see TCADAPI TCWEllipseFixedRatio function
  7902.          */
  7903.     [
  7904.          helpcontext(0x1005004E)
  7905.         ,helpstring("Creates and adds a ellipse to the collection.")
  7906.     ]
  7907.     HRESULT  AddEllipseFixedRatio(
  7908.         [in] double X0, // X coordinate of ellipse's center point.
  7909.         [in] double Y0, // Y coordinate of ellipse's center point.
  7910.         [in] double Z0, // Z coordinate of ellipse's center point.
  7911.         [in] double X1, // X coordinate of radius in Y direction.
  7912.         [in] double Y1, // Y coordinate of radius in Y direction.
  7913.         [in] double Z1, // Z coordinate of radius in Y direction.
  7914.         [in] double XToYRatio, // Ratio of Rx to Ry.
  7915.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7916.         );
  7917.  
  7918.         /**
  7919.          * Creates and adds an arc to the collection.
  7920.          *
  7921.          * @see TCADAPI TCWArcCenterAndPoint function
  7922.          */
  7923.     [
  7924.          helpcontext(0x1005004F)
  7925.         ,helpstring("Creates and adds an arc to the collection.")
  7926.     ]
  7927.     HRESULT  AddArcCenterAndPoint(
  7928.         [in] double X0, // X coordinate of arc's center point.
  7929.         [in] double Y0, // Y coordinate of arc's center point.
  7930.         [in] double Z0, // Z coordinate of arc's center point.
  7931.         [in] double X1, // X coordinate of arc's radius point.
  7932.         [in] double Y1, // Y coordinate of arc's radius point.
  7933.         [in] double Z1, // Z coordinate of arc's radius point.
  7934.         [in] double StartAngle, // Starting angle in radians.
  7935.         [in] double EndAngle, // Ending angle in radians.
  7936.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7937.         );
  7938.  
  7939.         /**
  7940.          * Creates and adds an arc to the collection.
  7941.          *
  7942.          * @see TCADAPI TCWArcDoublePoint function
  7943.          */
  7944.     [
  7945.          helpcontext(0x10050050)
  7946.         ,helpstring("Creates and adds an arc to the collection.")
  7947.     ]
  7948.     HRESULT  AddArcDoublePoint(
  7949.         [in] double X0, // X coordinate of first endpoint.
  7950.         [in] double Y0, // Y coordinate of first endpoint.
  7951.         [in] double Z0, // Z coordinate of first endpoint.
  7952.         [in] double X1, // X coordinate of second endpoint.
  7953.         [in] double Y1, // Y coordinate of second endpont.
  7954.         [in] double Z1, // Z coordinate of second endpoint.
  7955.         [in] double StartAngle, // Starting angle in radians.
  7956.         [in] double EndAngle, // Ending angle in radians.
  7957.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7958.         );
  7959.  
  7960.         /**
  7961.          * Creates and adds an arc to the collection.
  7962.          *
  7963.          * @see TCADAPI TCWArcTriplePoint function
  7964.          */
  7965.     [
  7966.          helpcontext(0x10050051)
  7967.         ,helpstring("Creates and adds an arc to the collection.")
  7968.     ]
  7969.     HRESULT  AddArcTriplePoint(
  7970.         [in] double X0, // X coordinate of starting point.
  7971.         [in] double Y0, // Y coordinate of starting point.
  7972.         [in] double Z0, // Z coordinate of starting point.
  7973.         [in] double X1, // X coordinate of point on perimeter.
  7974.         [in] double Y1, // Y coordinate of point on perimeter.
  7975.         [in] double Z1, // Z coordinate of point on perimeter.
  7976.         [in] double X2, // X coordinate of ending point.
  7977.         [in] double Y2, // Y coordinate of ending point.
  7978.         [in] double Z2, // Z coordinate of ending point.
  7979.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7980.         );
  7981.  
  7982.         /**
  7983.          * Creates and adds an elliptical arc to the collection.
  7984.          *
  7985.          * @see TCADAPI TCWArcElliptical function
  7986.          */
  7987.     [
  7988.          helpcontext(0x10050052)
  7989.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  7990.     ]
  7991.     HRESULT  AddArcElliptical(
  7992.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  7993.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  7994.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  7995.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  7996.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  7997.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  7998.         [in] double StartAngle, // Starting angle in radians.
  7999.         [in] double EndAngle, // Ending angle in radians.
  8000.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8001.         );
  8002.  
  8003.         /**
  8004.          * Creates and adds an elliptical arc to the collection.
  8005.          *
  8006.          * @see TCADAPI TCWArcRotatedElliptical function
  8007.          */
  8008.     [
  8009.          helpcontext(0x10050053)
  8010.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  8011.     ]
  8012.     HRESULT  AddArcRotatedElliptical(
  8013.         [in] double X0, // X coordinate of elliptical arc's center point.
  8014.         [in] double Y0, // Y coordinate of elliptical arc's center point.
  8015.         [in] double Z0, // Z coordinate of elliptical arc's center point.
  8016.         [in] double X1, // X coordinate of major axis radius point.
  8017.         [in] double Y1, // Y coordinate of major axis radius point.
  8018.         [in] double Z1, // Z coordinate of major axis radius point.
  8019.         [in] double X2, // X coordinate of minor axis radius point.
  8020.         [in] double Y2, // Y coordinate of minor axis radius point.
  8021.         [in] double Z2, // Z coordinate of minor axis radius point.
  8022.         [in] double StartAngle, // Starting angle in radians.
  8023.         [in] double EndAngle, // Ending angle in radians.
  8024.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8025.         );
  8026.  
  8027.         /**
  8028.          * Creates and adds an elliptical arc to the collection.
  8029.          *
  8030.          * @see TCADAPI TCWArcEllipticalFixedRatio function
  8031.          */
  8032.     [
  8033.          helpcontext(0x10050054)
  8034.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  8035.     ]
  8036.     HRESULT  AddArcEllipticalFixedRatio(
  8037.         [in] double X0, // X coordinate of ellipse's center point.
  8038.         [in] double Y0, // Y coordinate of ellipse's center point.
  8039.         [in] double Z0, // Z coordinate of ellipse's center point.
  8040.         [in] double X1, // X coordinate of radius in Y direction.
  8041.         [in] double Y1, // Y coordinate of radius in Y direction.
  8042.         [in] double Z1, // Z coordinate of radius in Y direction.
  8043.         [in] double XToYRatio, // Ratio of Rx to Ry.
  8044.         [in] double StartAngle, // Starting angle in radians.
  8045.         [in] double EndAngle, // Ending angle in radians.
  8046.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8047.         );
  8048.  
  8049.         /**
  8050.          * Creates and adds a text Graphic object to the collection.
  8051.          *
  8052.          * @see TCADAPI TCWText function
  8053.          */
  8054.     [
  8055.          helpcontext(0x10050055)
  8056.         ,helpstring("Creates and adds a text Graphic object to the collection.")
  8057.     ]
  8058.     HRESULT  AddText(
  8059.         [in] BSTR Text, // The text string.
  8060.         [in] double X0, // X coordinate of text's starting point.
  8061.         [in] double Y0, // Y coordinate of text's starting point.
  8062.         [in] double Z0, // Z coordinate of text's starting point.
  8063.         [in] double Height, // Height of text object.
  8064.         [in, optional] VARIANT* Angle, // Rotation angle of text in radians.
  8065.         [in, optional] VARIANT* Width, // Width of text object.
  8066.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  8067.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  8068.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8069.         );
  8070.  
  8071.         ///////////////////// Blocks Groups and Hatches \\\\\\\\\\\\\\\\\\\\\\\\\\
  8072.  
  8073.         /**
  8074.          * Creates a block in the Drawing object from the Graphic objects in the collection.
  8075.          *
  8076.          * @see TCADAPI TCWBlockCreate function
  8077.          */
  8078.     [
  8079.          helpcontext(0x10050056)
  8080.         ,helpstring("Creates a block in the Drawing object from the Graphic objects in the collection.")
  8081.         ,restricted, hidden
  8082.     ]
  8083.     HRESULT  CreateBlock(
  8084.         [in, optional] BSTR Name, // Name for the new block.
  8085.         [in, optional] VARIANT* XRef, // X coordinate of the block reference point.
  8086.         [in, optional] VARIANT* YRef, // Y coordinate of the block reference point.
  8087.         [in, optional] VARIANT* ZRef, // Z coordinate of the block reference point.
  8088.         [in, optional] VARIANT* CopyGraphics, // True to make the group using copies of the Graphic objects in the Graphics collection.
  8089.         [in, optional] VARIANT* InsertBlock, // True to insert the new block in the Drawing object.
  8090.         [in, out, optional] VARIANT* Insert, // The Insert Graphic object if InsertBlock was true
  8091.         [out, retval] Block** prop // The newly created block.
  8092.         );
  8093.  
  8094.         /**
  8095.          * Adds a block insertion to the collection.
  8096.          *
  8097.          * @see TCADAPI TCWBlockInsert function
  8098.          */
  8099.     [
  8100.          helpcontext(0x10050057)
  8101.         ,helpstring("Adds a block insertion to the collection.")
  8102.         ,restricted, hidden
  8103.     ]
  8104.     HRESULT  AddBlockInsertion(
  8105.         [in] VARIANT* Block, // BlockObj or index of the block.
  8106.         [in, optional] VARIANT* X0, // X coordinate of the block insertion point.
  8107.         [in, optional] VARIANT* Y0, // Y coordinate of the block insertion point.
  8108.         [in, optional] VARIANT* Z0, // Z coordinate of the block insertion point.
  8109.         [in, optional] VARIANT* XScale, // X scale factor.
  8110.         [in, optional] VARIANT* YScale, // Y scale factor.
  8111.         [in, optional] VARIANT* ZScale, // Z scale factor.
  8112.         [in, optional] VARIANT* Angle, // Rotation angle of block insertion in radians.
  8113.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8114.         );
  8115.  
  8116.         /**
  8117.          * Adds a group to the collection from the Graphic objects in the collection.
  8118.          *
  8119.          * @see TCADAPI TCWGroupCreate function
  8120.          */
  8121.     [
  8122.          helpcontext(0x10050058)
  8123.         ,helpstring("Adds a group to the collection from the Graphic objects in the collection.")
  8124.         ,restricted, hidden
  8125.     ]
  8126.     HRESULT  AddGroup(
  8127.         [in, optional] VARIANT* Name, // Name for the new group.
  8128.         [in, optional] VARIANT* Copy, // True to make the group using copies of the Graphic objects in the Graphics collection.
  8129.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8130.         );
  8131.  
  8132.         /**
  8133.          * Explodes groups and block insertions in the collection.
  8134.          *
  8135.          * @see TCADAPI TCWExplode function
  8136.          */
  8137.     [
  8138.          helpcontext(0x10050059)
  8139.         ,helpstring("Explodes groups and block insertions in the collection.")
  8140.         ,restricted, hidden
  8141.     ]
  8142.     HRESULT  Explode(
  8143.         [out, retval] GraphicSet** prop // The exploded Graphic objects.
  8144.         );
  8145.  
  8146.         /////////////////////////// Copy Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  8147.  
  8148.         /**
  8149.          * Copies the Graphic objects in the collection along a line.
  8150.          */
  8151.     [
  8152.          helpcontext(0x1005005A)
  8153.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  8154.         ,restricted, hidden
  8155.     ]
  8156.     HRESULT  LinearCopyAbsolute(
  8157.         [in] double X, // X coordinate to copy to.
  8158.         [in] double Y, // Y coordinate to copy to.
  8159.         [in] double Z, // Z coordinate to copy to.
  8160.         [in] long Copies, // Number of copies including the original.
  8161.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  8162.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8163.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8164.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8165.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8166.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  8167.         );
  8168.  
  8169.         /**
  8170.          * Copies the Graphic objects in the collection along a line.
  8171.          */
  8172.     [
  8173.          helpcontext(0x1005005B)
  8174.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  8175.         ,restricted, hidden
  8176.     ]
  8177.     HRESULT  LinearCopyRelative(
  8178.         [in] double X, // X offset.
  8179.         [in] double Y, // Y offset.
  8180.         [in] double Z, // Z offset.
  8181.         [in] long Copies, // Number of copies including the original.
  8182.         [in, optional] VARIANT* Fit, // True if specified offset is for last copy.
  8183.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8184.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  8185.         );
  8186.  
  8187.         /**
  8188.          * Copies the Graphic objects in the collection along a line.
  8189.          */
  8190.     [
  8191.          helpcontext(0x1005005C)
  8192.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  8193.         ,restricted, hidden
  8194.     ]
  8195.     HRESULT  LinearCopyAngle(
  8196.         [in] double Length, // Length of copy.
  8197.         [in] double Angle, // Angle of copy in radians.
  8198.         [in] long Copies, // Number of copies including the original.
  8199.         [in, optional] VARIANT* Fit, // True if specified length is for last copy.
  8200.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8201.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8202.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8203.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8204.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8205.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  8206.         );
  8207.  
  8208.         /**
  8209.          * Copies the Graphic objects in the collection radially.
  8210.          * Always rotates in the currently active workplane?
  8211.          */
  8212.     [
  8213.          helpcontext(0x1005005D)
  8214.         ,helpstring("Copies the Graphic objects in the collection radially.")
  8215.         ,restricted, hidden
  8216.     ]
  8217.     HRESULT  RadialCopyAbsolute(
  8218.         [in] double X0, // X coordinate of center of arc.
  8219.         [in] double Y0, // Y coordinate of center of arc.
  8220.         [in] double Z0, // Z coordinate of center of arc.
  8221.         [in] double X1, // X coordinate of point on arc.
  8222.         [in] double Y1, // Y coordinate of point on arc.
  8223.         [in] double Z1, // Z coordinate of point on arc.
  8224.         [in] long Copies, // Number of copies including the original.
  8225.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  8226.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8227.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8228.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8229.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8230.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8231.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  8232.         );
  8233.  
  8234.         /**
  8235.          * Copies the Graphic objects in the collection radially.
  8236.          * Always rotates in the currently active workplane?
  8237.          */
  8238.     [
  8239.          helpcontext(0x1005005E)
  8240.         ,helpstring("Copies the Graphic objects in the collection radially.")
  8241.         ,restricted, hidden
  8242.     ]
  8243.     HRESULT  RadialCopyAngle(
  8244.         [in] double X, // X coordinate of center of arc.
  8245.         [in] double Y, // Y coordinate of center of arc.
  8246.         [in] double Z, // Z coordinate of center of arc.
  8247.         [in] double Angle, // Angle between copies or for last copy.
  8248.         [in] double RotationAngle, // Angle to rotate each copy.
  8249.         [in] long Copies, // Number of copies including the original.
  8250.         [in, optional] VARIANT* Fit, // True if specified angle is for last copy.
  8251.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8252.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8253.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8254.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8255.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8256.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  8257.         );
  8258.  
  8259.         /**
  8260.          * Copies the Graphic objects in a two dimensional array.
  8261.          * Always translates in the currently active workplane?
  8262.          */
  8263.     [
  8264.          helpcontext(0x1005005F)
  8265.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  8266.         ,restricted, hidden
  8267.     ]
  8268.     HRESULT  ArrayCopyAbsolute(
  8269.         [in] double X, // Coordinate defining row and column spacing.
  8270.         [in] double Y, // Coordinate defining row and column spacing.
  8271.         [in] double Z, // Coordinate defining row and column spacing.
  8272.         [in] long Rows, // Number of rows including the original.
  8273.         [in] long Columns, // Number of columns including the original.
  8274.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  8275.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8276.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8277.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8278.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8279.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8280.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  8281.         );
  8282.  
  8283.         /**
  8284.          * Copies the Graphic objects in a two dimensional array.
  8285.          * Always translates in the currently active workplane?
  8286.          */
  8287.     [
  8288.          helpcontext(0x10050060)
  8289.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  8290.         ,restricted, hidden
  8291.     ]
  8292.     HRESULT  ArrayCopyRelative(
  8293.         [in] double U, // Column offset.
  8294.         [in] double V, // Row offset.
  8295.         [in] long Rows, // Number of rows including the original.
  8296.         [in] long Columns, // Number of columns including the original.
  8297.         [in, optional] VARIANT* Fit, // True if specified offsets are for last copy.
  8298.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8299.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8300.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  8301.         );
  8302.  
  8303.         /**
  8304.          * Mirrors the Graphic objects in the collection about a line.
  8305.          */
  8306.     [
  8307.          helpcontext(0x10050061)
  8308.         ,helpstring("Mirrors the Graphic objects in the collection about a line.")
  8309.         ,restricted, hidden
  8310.     ]
  8311.     HRESULT  MirrorCopyLine(
  8312.         [in] double X0, // X coordinate of the first point on line.
  8313.         [in] double Y0, // Y coordinate of the first point on line.
  8314.         [in] double Z0, // Z coordinate of the first point on line.
  8315.         [in] double X1, // X coordinate of the second point on line.
  8316.         [in] double Y1, // Y coordinate of the second point on line.
  8317.         [in] double Z1, // Z coordinate of the second point on line.
  8318.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  8319.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8320.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8321.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  8322.         );
  8323.  
  8324.         /**
  8325.          * Mirrors the Graphic objects in the collection about an angle.
  8326.          */
  8327.     [
  8328.          helpcontext(0x10050062)
  8329.         ,helpstring("Mirrors the Graphic objects in the collection about an angle.")
  8330.         ,restricted, hidden
  8331.     ]
  8332.     HRESULT  MirrorCopyAngle(
  8333.         [in] double X, // X coordinate to mirror to.
  8334.         [in] double Y, // Y coordinate to mirror to.
  8335.         [in] double Z, // Z coordinate to mirror to.
  8336.         [in] double Angle, // Angle of mirror.
  8337.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  8338.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8339.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8340.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8341.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8342.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8343.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  8344.         );
  8345.  
  8346.         /**
  8347.          * Scales the Graphic objects in the collection.
  8348.          *
  8349.          * @see TCADAPI TCWSelectionScale function.
  8350.          */
  8351.     [
  8352.          helpcontext(0x10050063)
  8353.         ,helpstring("Scales the Graphic objects in the collection.")
  8354.         ,restricted, hidden
  8355.     ]
  8356.     HRESULT  Scale(
  8357.         [in] double XScale, // X scale factor.
  8358.         [in] double YScale, // Y scale factor.
  8359.         [in] double ZScale, // Z scale factor.
  8360.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8361.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8362.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8363.         [out, retval] IMatrix** prop // The matrix that was calculated.
  8364.         );
  8365.  
  8366.         /**
  8367.          * Rotates the Graphic objects in the collection.
  8368.          *
  8369.          * @see TCADAPI TCWSelectionRotate function.
  8370.          */
  8371.     [
  8372.          helpcontext(0x10050064)
  8373.         ,helpstring("Rotates the Graphic objects in the collection.")
  8374.         ,restricted, hidden
  8375.     ]
  8376.     HRESULT  RotateAxis(
  8377.         [in] double Angle, // Angle of rotation in radians.
  8378.         [in, optional] VARIANT* XAxis, // X coordinate of axis direction.
  8379.         [in, optional] VARIANT* YAxis, // Y coordinate of axis direction.
  8380.         [in, optional] VARIANT* ZAxis, // Z coordinate of axis direction.
  8381.         [in, optional] VARIANT* X, // X coordinate of the rotation center.
  8382.         [in, optional] VARIANT* Y, // Y coordinate of the rotation center.
  8383.         [in, optional] VARIANT* Z, // Z coordinate of the rotation center.
  8384.         [out, retval] IMatrix** prop // The matrix that was calculated.
  8385.         );
  8386.  
  8387.         /**
  8388.          * Rotates the Graphic objects in the collection.
  8389.          *
  8390.          * @see TCADAPI TCWSelectionRotate function.
  8391.          */
  8392.     [
  8393.          helpcontext(0x10050065)
  8394.         ,helpstring("Rotates the Graphic objects in the collection.")
  8395.         ,restricted, hidden
  8396.     ]
  8397.     HRESULT  RotateAbsolute(
  8398.         [in] VARIANT* XTo, // X coordinate of the point to rotate to.
  8399.         [in] VARIANT* YTo, // Y coordinate of the point to rotate to.
  8400.         [in] VARIANT* ZTo, // Z coordinate of the point to rotate to.
  8401.         [in] VARIANT* XFrom, // X coordinate of the point to rotate from.
  8402.         [in] VARIANT* YFrom, // Y coordinate of the point to rotate from.
  8403.         [in] VARIANT* ZFrom, // Z coordinate of the point to rotate from.
  8404.         [in, optional] VARIANT* XRef, // X coordinate of the rotation center.
  8405.         [in, optional] VARIANT* YRef, // Y coordinate of the rotation center.
  8406.         [in, optional] VARIANT* ZRef, // Z coordinate of the rotation center.
  8407.         [out, retval] IMatrix** prop // The matrix that was calculated.
  8408.         );
  8409.  
  8410.         /**
  8411.          * Moves the Graphic objects in the collection to a new location.
  8412.          *
  8413.          * @see TCADAPI TCWSelectionMove function.
  8414.          */
  8415.     [
  8416.          helpcontext(0x10050066)
  8417.         ,helpstring("Moves the Graphic objects in the collection to a new location.")
  8418.         ,restricted, hidden
  8419.     ]
  8420.     HRESULT  MoveAbsolute(
  8421.         [in] double X, // X coordinate to move to.
  8422.         [in] double Y, // Y coordinate to move to.
  8423.         [in] double Z, // Z coordinate to move to.
  8424.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8425.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8426.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8427.         [out, retval] IMatrix** prop // The matrix that was calculated.
  8428.         );
  8429.  
  8430.         /**
  8431.          * Moves the Graphic objects in the collection by a specified offset.
  8432.          *
  8433.          * @see TCADAPI TCWSelectionMove function.
  8434.          */
  8435.     [
  8436.          helpcontext(0x10050067)
  8437.         ,helpstring("Moves the Graphic objects in the collection by a specified offset.")
  8438.         ,restricted, hidden
  8439.     ]
  8440.     HRESULT  MoveRelative(
  8441.         [in] double X, // X offset.
  8442.         [in] double Y, // Y offset.
  8443.         [in] double Z, // Z offset.
  8444.         [out, retval] IMatrix** prop // The matrix that was calculated.
  8445.         );
  8446.  
  8447.         /**
  8448.          * Transforms the Graphic objects in the collection.
  8449.          */
  8450.     [
  8451.          helpcontext(0x10050068)
  8452.         ,helpstring("Transforms the Graphic object.")
  8453.         ,restricted, hidden
  8454.     ]
  8455.     HRESULT  Transform(
  8456.         [in] IMatrix* Transform // The matrix to perform transformation.
  8457.         );
  8458.  
  8459.         ////////////////////// Miscellaneous Edit Methods \\\\\\\\\\\\\\\\\\\\
  8460.  
  8461.         /**
  8462.          * Aligns the Graphic objects in the collection.
  8463.          *
  8464.          * @see TCADAPI TCWAlignXXX functions.
  8465.          */
  8466.     [
  8467.          helpcontext(0x10050069)
  8468.         ,helpstring("Aligns the Graphic objects in the collection.")
  8469.         ,restricted, hidden
  8470.     ]
  8471.     HRESULT  Align(
  8472.         [in] ImsiAlignType AlignType // Bottom, middle, etc.
  8473.         );
  8474.  
  8475.         /**
  8476.          * Aligns the Graphic objects in the collection along a line.
  8477.          */
  8478.     [
  8479.          helpcontext(0x1005006A)
  8480.         ,helpstring("Aligns the Graphic objects in the collection along a line.")
  8481.         ,restricted, hidden
  8482.     ]
  8483.     HRESULT  AlignAlongLine(
  8484.         [in] double X0, // X coordinate of the first point.
  8485.         [in] double Y0, // Y coordinate of the first point.
  8486.         [in] double Z0, // Z coordinate of the first point.
  8487.         [in] double X1, // X coordinate of the second point.
  8488.         [in] double Y1, // Y coordinate of the second point.
  8489.         [in] double Z1 // Z coordinate of the second point.
  8490.         );
  8491.  
  8492.         /**
  8493.          * Returns the index within the Graphics collection of the specified graphic handle.
  8494.          * Private.
  8495.          */
  8496.         [
  8497.              restricted
  8498.             ,helpcontext(0x1005006B)
  8499.             ,helpstring("Private.  Returns the index within the Graphics collection of the specified graphic handle.")
  8500.         ]
  8501.         HRESULT  _FindIndex(
  8502.             [in] long g, // The graphic handle.
  8503.             [out, retval] long* prop // The index.
  8504.             );
  8505.  
  8506.         /**
  8507.          * Returns the Graphic objects in the collection that match a query string.
  8508.          *
  8509.          * @see TCADAPI TCWSelectByQuery function.
  8510.          */
  8511.         [
  8512.              helpcontext(0x1005006C)
  8513.             ,helpstring("Returns the Graphic objects in the collection that match a query string.")
  8514.         ]
  8515.         HRESULT  QuerySet(
  8516.             [in] BSTR Query, // The query string.
  8517.             [out, retval] GraphicSet** prop // The matching Graphic objects, as a GraphicSet__Object.
  8518.             );
  8519.  
  8520.         /**
  8521.          * Creates and adds a group of polylines or polygons to the collection.
  8522.          */
  8523.     [
  8524.          helpcontext(0x1005006D)
  8525.         ,helpstring("Creates and adds a group of polylines or polygons to the collection.")
  8526.         ,restricted, hidden
  8527.     ]
  8528.     HRESULT  AddPolys(
  8529.         [in] ImsiPolyType Type, // Type of poly(s) to be added.
  8530.         [in] VARIANT* Coords,   // Array of (X, Y, Z) poly coordinates.
  8531.         [out, retval] GraphicSet** NewPolys // The newly created Graphic objects.
  8532.         );
  8533.  
  8534.         /**
  8535.          * Generates a bounding polygon array to use in drag operations.
  8536.          *
  8537.          * @see View::DragOutline
  8538.          */
  8539.     [
  8540.          helpcontext(0x1005006E)
  8541.         ,helpstring("Generates a bounding polygon array to use in drag operations.")
  8542.         ,restricted, hidden
  8543.     ]
  8544.     HRESULT  CreateDragOutline(
  8545.         [in, out] VARIANT* Coords // Array of (X, Y, Z) polygon coordinates.
  8546.         );
  8547.  
  8548.         /**
  8549.          * Creates and adds a bunch of polylines to the collection.
  8550.          * The returned Graphics object contains a set with freshly created
  8551.          * polygons. The user can set properties, etc.
  8552.          */
  8553.     [
  8554.          helpcontext(0x1005006F)
  8555.         ,helpstring("Creates and adds a bunch of polylines to the collection.")
  8556.         ,restricted, hidden
  8557.     ]
  8558.     HRESULT  AddPolylines(
  8559.         [in] long NumberOfPolylines, // number of polylines to create
  8560.         [in] VARIANT* Coords,   // SafeArray of triplets of coordinates.
  8561.         [in] IMSI_BOOL closed, // whether each polyline is closed
  8562.         [out, retval] GraphicSet** NewPolys // The newly created set of Graphic objects.
  8563.         );
  8564.  
  8565.         /**
  8566.          * Finds the Graphic object in the collection with the given ID.
  8567.          */
  8568.     [
  8569.          helpcontext(0x10050070)
  8570.         ,helpstring("Finds the Graphic object in the collection with the given ID.")
  8571.     ]
  8572.     HRESULT  GraphicFromID(
  8573.         [in] long ID, // ID of Graphic object.
  8574.         [out, retval] IGraphic** prop // The Graphic object.
  8575.         );
  8576.  
  8577.         /**
  8578.          * Creates and adds an attribute definition Graphic object to the collection.  
  8579.          */
  8580.     [
  8581.          helpcontext(0x10050071)
  8582.         ,helpstring("Creates and adds an attribute definition Graphic object to the collection.")
  8583.     ]
  8584.     HRESULT  AddAttributeDefinition(
  8585.         [in] BSTR Tag, // The text string for the attribute definition tag.
  8586.         [in] double X0, // X coordinate of attdef's starting point.
  8587.         [in] double Y0, // Y coordinate of attdef's starting point.
  8588.         [in] double Z0, // Z coordinate of attdef's starting point.
  8589.         [in] double Height, // Height of attdef object.
  8590.         [in, optional] VARIANT* Angle, // Rotation angle of attdef in radians.
  8591.         [in, optional] VARIANT* Width, // Width of attdef object.
  8592.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  8593.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  8594.         [in, optional] VARIANT* AttFlags, // ImsiAttFlag values.
  8595.         [in, optional] VARIANT* Default, // Default value of attribute.
  8596.         [in, optional] VARIANT* Prompt, // Prompt for attribute.
  8597.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8598.         );
  8599.  
  8600.         /////////////////////////////////////////////////////////////////////////////
  8601.         // Layer methods
  8602.  
  8603.         /**
  8604.          * Returns the Layer object's brush style.
  8605.          */
  8606.         [
  8607.              propget
  8608.             ,helpcontext(0x10050072)
  8609.             ,helpstring("Returns the Layer object's brush style.")
  8610.         ]
  8611.         HRESULT  BrushStyle(
  8612.             [out, retval] BrushStyle** prop // The BrushStyle object.
  8613.             );
  8614.  
  8615.         /**
  8616.          * Sets the Layer object's brush style.
  8617.          */
  8618.         [
  8619.              propput
  8620.             ,helpcontext(0x10050072)
  8621.             ,helpstring("Sets the Layer object's brush style.")
  8622.         ]
  8623.         HRESULT  BrushStyle(
  8624.             [in] VARIANT* prop // The BrushStyle object name or object.
  8625.             );
  8626.  
  8627.         /**
  8628.          * Returns the color for the Layer object.
  8629.          */
  8630.         [
  8631.              propget
  8632.             ,helpcontext(0x10050073)
  8633.             ,helpstring("Returns the color for the Layer object.")
  8634.         ]
  8635.         HRESULT  Color(
  8636.             [out, retval] IMSI_COLOR* prop // The color.
  8637.             );
  8638.  
  8639.         /**
  8640.          * Sets the color for the Layer object.
  8641.          */
  8642.         [
  8643.              propput
  8644.             ,helpcontext(0x10050073)
  8645.             ,helpstring("Sets the color for the Layer object.")
  8646.         ]
  8647.         HRESULT  Color(
  8648.             [in] IMSI_COLOR prop // The color.
  8649.             );
  8650.  
  8651.         /**
  8652.          * True if Graphic objects on the Layer object can be edited.
  8653.          */
  8654.         [
  8655.              propget
  8656.             ,helpcontext(0x10050074)
  8657.             ,helpstring("True if Graphic objects on the Layer object can be edited.")
  8658.         ]
  8659.         HRESULT  Editable(
  8660.             [out, retval] IMSI_BOOL* prop // True if Graphic objects on the Layer object can be edited.
  8661.             );
  8662.  
  8663.         /**
  8664.          * True if Graphic objects on the Layer object can be edited.
  8665.          */
  8666.         [
  8667.              propput
  8668.             ,helpcontext(0x10050074)
  8669.             ,helpstring("True if Graphic objects on the Layer object can be edited.")
  8670.         ]
  8671.         HRESULT  Editable(
  8672.             [in] IMSI_BOOL prop // True if Graphic objects on the Layer object can be edited.
  8673.             );
  8674.  
  8675.         /**
  8676.          * True if Graphic objects on the Layer object cannot be edited or selected.
  8677.          */
  8678.         [
  8679.              propget
  8680.             ,helpcontext(0x10050075)
  8681.             ,helpstring("True if Graphic objects on the Layer object cannot be edited or selected.")
  8682.         ]
  8683.         HRESULT  Frozen(
  8684.             [out, retval] IMSI_BOOL* prop // True if Graphic objects on the Layer object cannot be edited or selected.
  8685.             );
  8686.  
  8687.         /**
  8688.          * True if Graphic objects on the Layer object cannot be edited or selected.
  8689.          */
  8690.         [
  8691.              propput
  8692.             ,helpcontext(0x10050075)
  8693.             ,helpstring("True if Graphic objects on the Layer object cannot be edited or selected.")
  8694.         ]
  8695.         HRESULT  Frozen(
  8696.             [in] IMSI_BOOL prop // True if Graphic objects on the Layer object cannot be edited or selected.
  8697.             );
  8698.  
  8699.         /**
  8700.          * Returns the index of the item in the collection.
  8701.          */
  8702.         [
  8703.              propget
  8704.             ,helpcontext(0x10050076)
  8705.             ,helpstring("Returns the index of the item in the collection.")
  8706.         ]
  8707.         HRESULT  Index(
  8708.             [out, retval] long* prop // The index.
  8709.             );
  8710.  
  8711.         /**
  8712.          * Returns the Layer object's LineStyle object.
  8713.          */
  8714.         [
  8715.              propget
  8716.             ,helpcontext(0x10050077)
  8717.             ,helpstring("Returns the Layer object's LineStyle object.")
  8718.         ]
  8719.         HRESULT  LineStyle(
  8720.             [out, retval] LineStyle** prop // The LineStyle object.
  8721.             );
  8722.  
  8723.         /**
  8724.          * Sets the Layer object's LineStyle object.
  8725.          */
  8726.         [
  8727.              propput
  8728.             ,helpcontext(0x10050077)
  8729.             ,helpstring("Sets the Layer object's LineStyle object.")
  8730.         ]
  8731.         HRESULT  LineStyle(
  8732.             [in] VARIANT* prop // The LineStyle object name or object.
  8733.             );
  8734.  
  8735.         /**
  8736.          * Returns the name of the object, as a string.
  8737.          */
  8738.         [
  8739.              propget
  8740.             ,helpcontext(0x10050078)
  8741.             ,helpstring("Returns the name of the object, as a string.")
  8742.         ]
  8743.         HRESULT  Name(
  8744.             [out, retval] BSTR* prop // The name of the object.
  8745.             );
  8746.  
  8747.         /**
  8748.          * Sets the Layer object's name.
  8749.          */
  8750.         [
  8751.              propput
  8752.             ,helpcontext(0x10050078)
  8753.             ,helpstring("Sets the Layer object's name.")
  8754.         ]
  8755.         HRESULT  Name(
  8756.             [in] BSTR prop // The name.
  8757.             );
  8758.  
  8759.         /**
  8760.          * Returns the Layer object's Properties collection.
  8761.          */
  8762.         [
  8763.              propget
  8764.             ,helpcontext(0x10050079)
  8765.             ,helpstring("Returns the Layer object's Properties collection.")
  8766.             ,restricted, hidden
  8767.         ]
  8768.         HRESULT  Properties(
  8769.             [out, retval] Properties** prop // The Properties collection.
  8770.             );
  8771.  
  8772.         /**
  8773.          * Returns the Layer object's graphic style.
  8774.          */
  8775.         [
  8776.              propget
  8777.             ,helpcontext(0x1005007A)
  8778.             ,helpstring("Returns the Layer object's graphic style.")
  8779.             ,restricted, hidden
  8780.         ]
  8781.         HRESULT  Style(
  8782.             [out, retval] Style** prop // The Style object.
  8783.             );
  8784.  
  8785.         /**
  8786.          * Sets the Layer object's graphic style.
  8787.          */
  8788.         [
  8789.              propput
  8790.             ,helpcontext(0x1005007A)
  8791.             ,helpstring("Sets the Layer object's graphic style.")
  8792.             ,restricted, hidden
  8793.         ]
  8794.         HRESULT  Style(
  8795.             [in] VARIANT* prop // The Style object name or object.
  8796.             );
  8797.  
  8798.         /**
  8799.          * True if Graphic objects on the Layer object can be displayed.
  8800.          */
  8801.         [
  8802.              propget
  8803.             ,helpcontext(0x1005007B)
  8804.             ,helpstring("True if Graphic objects on the Layer object can be displayed.")
  8805.         ]
  8806.         HRESULT  Visible(
  8807.             [out, retval] IMSI_BOOL* prop // True if Graphic objects on the Layer object can be displayed.
  8808.             );
  8809.  
  8810.         /**
  8811.          * True if Graphic objects on the Layer object can be displayed.
  8812.          */
  8813.         [
  8814.              propput
  8815.             ,helpcontext(0x1005007B)
  8816.             ,helpstring("True if Graphic objects on the Layer object can be displayed.")
  8817.         ]
  8818.         HRESULT  Visible(
  8819.             [in] IMSI_BOOL prop // True if Graphic objects on the Layer object can be displayed.
  8820.             );
  8821.  
  8822.         /**
  8823.          * Returns the Layer object's redraw order.
  8824.          */
  8825.         [
  8826.              propget
  8827.             ,helpcontext(0x1005007C)
  8828.             ,helpstring("Returns the Layer object's redraw order.")
  8829.         ]
  8830.         HRESULT  ZOrder(
  8831.             [out, retval] long* prop // The redraw order.
  8832.             );
  8833.  
  8834.         /**
  8835.          * Sets the Layer object's redraw order.
  8836.          */
  8837.         [
  8838.              propput
  8839.             ,helpcontext(0x1005007C)
  8840.             ,helpstring("Sets the Layer object's redraw order.")
  8841.         ]
  8842.         HRESULT  ZOrder(
  8843.             [in] long prop // The redraw order.
  8844.             );
  8845.  
  8846.         /**
  8847.          * Returns the internal table entry ID.
  8848.          * Private.
  8849.          */
  8850.         [
  8851.              propget
  8852.             ,restricted
  8853.             ,helpcontext(0x1005007D)
  8854.             ,helpstring("Private.  Returns the internal table entry ID.")
  8855.         ]
  8856.         HRESULT  _TableEntryID(
  8857.             [out, retval] long* prop // The table entry ID.
  8858.             );
  8859.  
  8860.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  8861.  
  8862.         /**
  8863.          * Deletes the object.
  8864.          */
  8865.         [
  8866.              helpcontext(0x1005007E)
  8867.             ,helpstring("Deletes the object.")
  8868.         ]
  8869.         HRESULT  Delete(
  8870.             );
  8871.  
  8872.         /**
  8873.          * Duplicates the object and returns a reference to the new copy.
  8874.          */
  8875.         [
  8876.              helpcontext(0x1005007F)
  8877.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  8878.             ,restricted, hidden
  8879.         ]
  8880.         HRESULT  Duplicate(
  8881.             [in] BSTR Name, // The name for the new Layer object.
  8882.             [out, retval] Layer** prop // The duplicated Layer object.
  8883.             );
  8884.     
  8885.         ////////////////////////////////// v9 properties \\\\\\\\\\\\\\\\\\\\\\\\/
  8886.  
  8887.         /**
  8888.          * Returns the Layer line width value.
  8889.          */
  8890.         [
  8891.              propget
  8892.             ,helpcontext(0x1005007C)
  8893.             ,helpstring("Returns the Layer line width value.")
  8894.         ]
  8895.         HRESULT  Width(
  8896.             [out, retval] double* prop // Get layer line width.
  8897.             );
  8898.  
  8899.         /**
  8900.          * Sets the Layer line width value.
  8901.          */
  8902.         [
  8903.              propput
  8904.             ,helpcontext(0x1005007C)
  8905.             ,helpstring("Sets the Layer line width value.")
  8906.         ]
  8907.         HRESULT  Width(
  8908.             [in] double prop // Set layer line width.
  8909.             );
  8910.  
  8911.         /**
  8912.          * Returns the Layer print style.
  8913.          */
  8914.         [
  8915.              propget
  8916.             ,helpcontext(0x1005007C)
  8917.             ,helpstring("Returns the Layer print style.")
  8918.         ]
  8919.         HRESULT  PrintStyle(
  8920.             [out, retval] VARIANT* prop // Get layer line width.
  8921.             );
  8922.  
  8923.         /**
  8924.          * Sets the Layer line width value.
  8925.          */
  8926.         [
  8927.              propput
  8928.             ,helpcontext(0x1005007C)
  8929.             ,helpstring("Sets the Layer print style.")
  8930.         ]
  8931.         HRESULT  PrintStyle(
  8932.             [in] VARIANT* prop // Set layer width.
  8933.             );
  8934.  
  8935.         /**
  8936.          * Adds a Region to the collection from the Graphic objects in the collection.
  8937.          *
  8938.          */
  8939.         [
  8940.              helpcontext(0x10050058)
  8941.             ,helpstring("Adds a Region to the collection from the Graphic objects in the collection.")
  8942.             ,hidden, restricted
  8943.         ]
  8944.         HRESULT  AddRegion(
  8945.              [in, optional]    VARIANT*    pvarName
  8946.             ,[in, optional]    VARIANT*    pvarCopy
  8947.             ,[out, retval]    IGraphic** prop // The newly GraphicObject.
  8948.             );
  8949.     };
  8950.  
  8951.  
  8952.     /**
  8953.      * The collection of Graphic objects that represents the selection of a Drawing object.
  8954.      */
  8955.     [
  8956.          object
  8957.         ,uuid(6A48110B-E531-11CF-A115-00A024158DAF)
  8958.         ,oleautomation
  8959.         ,dual
  8960.         ,helpcontext(0x10060000)
  8961.         ,helpstring("The selection object.")
  8962.     ]
  8963.     interface Selection : IDispatch
  8964.     {
  8965.  
  8966.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  8967.  
  8968.         /**
  8969.          * Returns an Application object that represents the owner of the specified object.
  8970.          */
  8971.         [
  8972.              propget
  8973.             ,helpcontext(0x10060001)
  8974.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  8975.         ]
  8976.         HRESULT  Application(
  8977.             [out, retval] IApplication** prop // The Application object.
  8978.             );
  8979.  
  8980.         /**
  8981.          * Returns the number of items in the collection.
  8982.          */
  8983.         [
  8984.              propget
  8985.             ,helpcontext(0x10060002)
  8986.             ,helpstring("Returns the number of items in the collection.")
  8987.         ]
  8988.         HRESULT  Count(
  8989.             [out, retval] long* prop // The number of items.
  8990.             );
  8991.  
  8992.         /**
  8993.          * Returns the Drawing object that owns the object.
  8994.          */
  8995.         [
  8996.              propget
  8997.             ,helpcontext(0x10060003)
  8998.             ,helpstring("Returns the Drawing object that owns the object.")
  8999.         ]
  9000.         HRESULT  Drawing(
  9001.             [out, retval] IDrawing** prop // The Drawing object.
  9002.             );
  9003.  
  9004.         /**
  9005.          * Returns part of a collection.
  9006.          */
  9007.         [
  9008.              propget
  9009.             ,id(DISPID_VALUE)
  9010.             ,helpcontext(0x10060004)
  9011.             ,helpstring("Returns part of a collection.")
  9012.         ]
  9013.         HRESULT  Item(
  9014.             [in] VARIANT* Index, // Index of item to return.
  9015.             [out, retval] IGraphic** prop // The item.
  9016.             );
  9017.  
  9018.         /**
  9019.          * Returns the parent object for the specified object.
  9020.          */
  9021.         [
  9022.              propget
  9023.             ,helpcontext(0x10060005)
  9024.             ,helpstring("Returns the parent object for the specified object.")
  9025.         ]
  9026.         HRESULT  Parent(
  9027.             [out, retval] IDispatch** prop // The parent object.
  9028.             );
  9029.  
  9030.         /**
  9031.          * Creates an enumeration object.
  9032.          */
  9033.         [
  9034.              propget
  9035.             ,restricted
  9036.             ,id(DISPID_NEWENUM)
  9037.             ,helpcontext(0x10060006)
  9038.             ,helpstring("Private.  Creates an enumeration object.")
  9039.         ]
  9040.         HRESULT  _NewEnum(
  9041.             [out, retval] IUnknown** prop // The enumeration object.
  9042.             );
  9043.  
  9044.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  9045.  
  9046. #ifndef METHOD_OVERFLOW_BUG
  9047.  
  9048.         /**
  9049.          * Applies a Style object to the contents of the collection.
  9050.          */
  9051.         [
  9052.              helpcontext(0x10060007)
  9053.             ,helpstring("Applies a Style object to the contents of the collection.")
  9054.             ,restricted, hidden
  9055.         ]
  9056.         HRESULT  ApplyStyle(
  9057.             [in] Style* StyleToApply // The Style object to apply.
  9058.             );
  9059.  
  9060.         /**
  9061.          * Checks the spelling of all the text Graphic object's in the collection.
  9062.          */
  9063.         [
  9064.              helpcontext(0x10060008)
  9065.             ,helpstring("Checks the spelling of all the text Graphic object's in the collection.")
  9066.             ,restricted, hidden
  9067.         ]
  9068.         HRESULT  CheckSpelling(
  9069.         [in, optional] VARIANT* CustomDictionary, // The name of a custom dictionary.
  9070.         [in, optional] VARIANT* IgnoreUppercase, // True to ignore case.
  9071.         [in, optional] VARIANT* AlwaysSuggest, // True to suggest corrections.
  9072.         [in, optional] VARIANT* CustomDictionary2, // The name of a custom dictionary.
  9073.         [in, optional] VARIANT* CustomDictionary3, // The name of a custom dictionary.
  9074.         [in, optional] VARIANT* CustomDictionary4, // The name of a custom dictionary.
  9075.         [in, optional] VARIANT* CustomDictionary5, // The name of a custom dictionary.
  9076.         [in, optional] VARIANT* CustomDictionary6, // The name of a custom dictionary.
  9077.         [in, optional] VARIANT* CustomDictionary7, // The name of a custom dictionary.
  9078.         [in, optional] VARIANT* CustomDictionary8, // The name of a custom dictionary.
  9079.         [in, optional] VARIANT* CustomDictionary9, // The name of a custom dictionary.
  9080.         [in, optional] VARIANT* CustomDictionary10 // The name of a custom dictionary.
  9081.         );
  9082.  
  9083.         /**
  9084.          * Adds a hatch pattern to the collection from the Graphic objects in the collection.
  9085.          *
  9086.          * @see TCADAPI TCWCreateHatch function
  9087.          */
  9088.     [
  9089.          helpcontext(0x10060009)
  9090.         ,helpstring("Adds a hatch pattern to the collection from the Graphic objects in the collection.")
  9091.         ,restricted, hidden
  9092.     ]
  9093.     HRESULT  AddHatch(
  9094.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9095.         );
  9096.  
  9097.         /**
  9098.          * Creates a Style object based on the contents of the collection.
  9099.          */
  9100.         [
  9101.              helpcontext(0x1006000A)
  9102.             ,helpstring("Creates a Style object based on the contents of the collection.")
  9103.             ,restricted, hidden
  9104.         ]
  9105.         HRESULT  CreateStyle(
  9106.             [in] Style* BasedOn, // The style to base the new Style object on.
  9107.             [out, retval] Style** prop // The newly created Style object.
  9108.             );
  9109.  
  9110.         /**
  9111.          * Creates and adds an OLE object to the collection.
  9112.          */
  9113.         [
  9114.              helpcontext(0x1006000B)
  9115.             ,helpstring("Creates and adds an OLE object to the collection.")
  9116.             ,restricted, hidden
  9117.         ]
  9118.         HRESULT  AddObject(
  9119.             [in, optional] VARIANT* ClassType, // Name of data format to paste.
  9120.             [in, optional] VARIANT* FileName, // Name of file to create object or link from.
  9121.             [in, optional] VARIANT* LinkToFile, // True if object is a link.
  9122.             [in, optional] VARIANT* DisplayAsIcon, // True to display as icon.
  9123.             [in, optional] VARIANT* IconFileName, // File containing icon.
  9124.             [in, optional] VARIANT* IconIndex, // Index of icon to use if displaying as icon.
  9125.             [in, optional] VARIANT* IconLabel, // Label to display if displaying as icon.
  9126.             [in, optional] VARIANT* X, // X coordinate of center of object.
  9127.             [in, optional] VARIANT* Y, // Y coordinate of center of object.
  9128.             [in, optional] VARIANT* Z, // Z coordinate of center of object.
  9129.             [in, optional] VARIANT* Width, // Width of object.
  9130.             [in, optional] VARIANT* Height, // Height of object.
  9131.             [in, optional] VARIANT* Anchor, // TODO: What's this for?
  9132.             [out, retval] IGraphic** prop // The newly created Graphic object.
  9133.             );
  9134.  
  9135.         /**
  9136.          * Creates and adds a single line segment to the collection.
  9137.          */
  9138.     [
  9139.          helpcontext(0x1006000C)
  9140.         ,helpstring("Creates and adds a single line segment to the collection.")
  9141.         ,restricted, hidden
  9142.     ]
  9143.     HRESULT  AddLineTanArcPoint(
  9144.         [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  9145.         [in] double X0, // X coordinate on arc for line endpoint.
  9146.         [in] double Y0, // Y coordinate on arc for line endpoint.
  9147.         [in] double Z0, // Z coordinate on arc for line endpoint.
  9148.         [in] double length, // length of tangent line.
  9149.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9150.         );
  9151.  
  9152.         /**
  9153.          * Creates and adds a single line segment to the collection.
  9154.          */
  9155.     [
  9156.          helpcontext(0x1006000D)
  9157.         ,helpstring("Creates and adds a single line segment to the collection.")
  9158.         ,restricted, hidden
  9159.     ]
  9160.     HRESULT  AddLineTanToArc(
  9161.         [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  9162.         [in] double X0, // X coordinate on arc for the line's first endpoint.
  9163.         [in] double Y0, // Y coordinate on arc for the line's first endpoint.
  9164.         [in] double Z0, // Z coordinate on arc for the line's first endpoint.
  9165.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9166.         );
  9167.  
  9168.         /**
  9169.          * Creates and adds a single line segment to the collection.
  9170.          */
  9171.     [
  9172.          helpcontext(0x1006000E)
  9173.         ,helpstring("Creates and adds a single line segment to the collection.")
  9174.             ,restricted, hidden
  9175.     ]
  9176.     HRESULT  AddLineTanFromArc(
  9177.         [in] IGraphic* TangentFrom, // Arc to draw line tangent from.
  9178.         [in] double X0, // X coordinate on arc for the line's second endpoint.
  9179.         [in] double Y0, // Y coordinate on arc for the line's second endpoint.
  9180.         [in] double Z0, // Z coordinate on arc for the line's second endpoint.
  9181.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9182.         );
  9183.  
  9184.         /**
  9185.          * Creates and adds a single line segment to the collection.
  9186.          */
  9187.     [
  9188.          helpcontext(0x1006000F)
  9189.         ,helpstring("Creates and adds a single line segment to the collection.")
  9190.         ,restricted, hidden
  9191.     ]
  9192.     HRESULT  AddLineTan2Arcs(
  9193.         [in] IGraphic* Arc1, // First arc.
  9194.         [in] IGraphic* Arc2, // Second arc.
  9195.         [in] IMSI_BOOL CounterClockwise, // True if tangent direction is counterclockwise.
  9196.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9197.         );
  9198.  
  9199.         /**
  9200.          * Creates and adds a multi segment leader (callout) line to the collection.
  9201.          * The returned Graphic object contains only a beginning vertex.  The user must
  9202.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  9203.          * and a Graphic.Finish call to complete the Graphic object.
  9204.          */
  9205.     [
  9206.          helpcontext(0x10060010)
  9207.         ,helpstring("Creates and adds a multi segment leader (callout) line to the collection.")
  9208.         ,restricted, hidden
  9209.     ]
  9210.     HRESULT  AddDimensionLeader(
  9211.         [in] double X0, // X coordinate of the first endpoint.
  9212.         [in] double Y0, // Y coordinate of the first endpoint.
  9213.         [in] double Z0, // Z coordinate of the first endpoint.
  9214.         [in, optional] BSTR Text, // The text for the leader.
  9215.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9216.         );
  9217.  
  9218.         /**
  9219.          * Creates and adds a baseline dimension to the collection.
  9220.          * The returned Graphic object contains only a beginning vertex.  The user must
  9221.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  9222.          * and a Graphic.Finish call to complete the Graphic object.
  9223.          */
  9224.     [
  9225.          helpcontext(0x10060011)
  9226.         ,helpstring("Creates and adds a WHATEVER to the collection.")
  9227.         ,restricted, hidden
  9228.     ]
  9229.     HRESULT  AddDimensionBaseline(
  9230.         [in] IGraphic* AddTo, // dimension line to add baseline dimension to.
  9231.         [in] double X0, // X coordinate of second extension line.
  9232.         [in] double Y0, // Y coordinate of second extension line.
  9233.         [in] double Z0, // Z coordinate of second extension line.
  9234.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9235.         );
  9236.  
  9237.         /**
  9238.          * Creates and adds a continuous dimension to the collection.
  9239.          * The returned Graphic object contains only a beginning vertex.  The user must
  9240.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  9241.          * and a Graphic.Finish call to complete the Graphic object.
  9242.          */
  9243.     [
  9244.          helpcontext(0x10060012)
  9245.         ,helpstring("Creates and adds a continuous dimension to the collection.")
  9246.         ,restricted, hidden
  9247.     ]
  9248.     HRESULT  AddDimensionContinuous(
  9249.         [in] IGraphic* AddTo, // dimension line to add continuous dimension to.
  9250.         [in] double X0, // X coordinate of second extension line.
  9251.         [in] double Y0, // Y coordinate of second extension line.
  9252.         [in] double Z0, // Z coordinate of second extension line.
  9253.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9254.         );
  9255.  
  9256.         /**
  9257.          * Creates and adds a single segment double line to the collection.
  9258.          *
  9259.          * @see TCADAPI TCWDoubleLineSingle function
  9260.          */
  9261.     [
  9262.          helpcontext(0x10060013)
  9263.         ,helpstring("Creates and adds a single segment double line to the collection.")
  9264.         ,restricted, hidden
  9265.     ]
  9266.     HRESULT  AddDoubleLineSingle(
  9267.         [in] double X0, // X coordinate of the first point.
  9268.         [in] double Y0, // Y coordinate of the first point.
  9269.         [in] double Z0, // Z coordinate of the first point.
  9270.         [in] double X1, // X coordinate of the second point.
  9271.         [in] double Y1, // Y coordinate of the second point.
  9272.         [in] double Z1, // Z coordinate of the second point.
  9273.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9274.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9275.         );
  9276.  
  9277.         /**
  9278.          * Creates and adds a double regular polygon to the collection.
  9279.          *
  9280.          * @see TCADAPI TCWDoubleLinePolygon function
  9281.          */
  9282.     [
  9283.          helpcontext(0x10060014)
  9284.         ,helpstring("Creates and adds a double regular polygon to the collection.")
  9285.         ,restricted, hidden
  9286.     ]
  9287.     HRESULT  AddDoubleLinePolygon(
  9288.         [in] double X0, // X coordinate of the center point.
  9289.         [in] double Y0, // Y coordinate of the center point.
  9290.         [in] double Z0, // Z coordinate of the center point.
  9291.         [in] double X1, // X coordinate of the corner point.
  9292.         [in] double Y1, // Y coordinate of the corner point.
  9293.         [in] double Z1, // Z coordinate of the corner point.
  9294.         [in] long Sides, // Number of sides.
  9295.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9296.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9297.         );
  9298.  
  9299.         /**
  9300.          * Creates and adds a double rectangle to the collection.
  9301.          *
  9302.          * @see TCADAPI TCWDoubleLineRectangle function
  9303.          */
  9304.     [
  9305.          helpcontext(0x10060015)
  9306.         ,helpstring("Creates and adds a double rectangle to the collection.")
  9307.         ,restricted, hidden
  9308.     ]
  9309.     HRESULT  AddDoubleLineRectangle(
  9310.         [in] double X0, // X coordinate of the upper left corner.
  9311.         [in] double Y0, // Y coordinate of the upper left corner.
  9312.         [in] double Z0, // Z coordinate of the upper left corner.
  9313.         [in] double X1, // X coordinate of the lower right corner.
  9314.         [in] double Y1, // Y coorindate of the lower right corner.
  9315.         [in] double Z1, // Z coorindate of the lower right corner.
  9316.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9317.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9318.         );
  9319.  
  9320.         /**
  9321.          * Creates and adds a double rotated rectangle to the collection.
  9322.          *
  9323.          * @see TCADAPI TCWDoubleLineRotatedRectangle function
  9324.          */
  9325.     [
  9326.          helpcontext(0x10060016)
  9327.         ,helpstring("Creates and adds a double rotated rectangle to the collection.")
  9328.         ,restricted, hidden
  9329.     ]
  9330.     HRESULT  AddDoubleLineRotatedRectangle(
  9331.         [in] double X0, // X coordinate of the upper left corner.
  9332.         [in] double Y0, // Y coordinate of the upper left corner.
  9333.         [in] double Z0, // Z coordinate of the upper left corner.
  9334.         [in] double X1, // X coordinate of the lower right corner.
  9335.         [in] double Y1, // Y coorindate of the lower right corner.
  9336.         [in] double Z1, // Z coorindate of the lower right corner.
  9337.         [in] double Angle, // Angle of rotation in radians.
  9338.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9339.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9340.         );
  9341.  
  9342.         /**
  9343.          * Creates and adds a double line to the collection.
  9344.          *
  9345.          * @see TCADAPI TCWDoubleLinePerpendicular function
  9346.          */
  9347.     [
  9348.          helpcontext(0x10060017)
  9349.         ,helpstring("Creates and adds a double line to the collection.")
  9350.         ,restricted, hidden
  9351.     ]
  9352.     HRESULT  AddDoubleLinePerpendicular(
  9353.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  9354.         [in] double X0, // X coordinate of the point on the existing line.
  9355.         [in] double Y0, // Y coordinate of the point on the existing line.
  9356.         [in] double Z0, // Z coordinate of the point on the existing line.
  9357.         [in] double X1, // X coordinate of the second point on the new line.
  9358.         [in] double Y1, // Y coordinate of the second point on the new line.
  9359.         [in] double Z1, // Z coordinate of the second point on the new line.
  9360.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9361.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9362.         );
  9363.  
  9364.         /**
  9365.          * Creates and adds a multiple segment double line to the collection.
  9366.          * The returned Graphic object contains only a beginning vertex.  The user must
  9367.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  9368.          * and a Graphic.Finish call to complete the Graphic object.
  9369.          *
  9370.          * @see TCADAPI TCWDoubleLineMultiline function
  9371.          */
  9372.     [
  9373.          helpcontext(0x10060018)
  9374.         ,helpstring("Creates and adds a multiple segment double line to the collection.")
  9375.         ,restricted, hidden
  9376.     ]
  9377.     HRESULT  AddDoubleLineMultiline(
  9378.         [in] double X0, // X coordinate of first endpoint.
  9379.         [in] double Y0, // Y coordinate of first endpoint.
  9380.         [in] double Z0, // Z coordinate of first endpoint.
  9381.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9382.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9383.         );
  9384.  
  9385.         /**
  9386.          * Creates and adds a double irregular polygon to the collection.
  9387.          * The returned Graphic object contains only a beginning vertex.  The user must
  9388.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  9389.          * and a Graphic.Close call to complete the Graphic object.
  9390.          *
  9391.          * @see TCADAPI TCWDoubleLineIrregularPolygon function
  9392.          */
  9393.     [
  9394.          helpcontext(0x10060019)
  9395.         ,helpstring("Creates and adds a double irregular polygon to the collection.")
  9396.         ,restricted, hidden
  9397.     ]
  9398.     HRESULT  AddDoubleLineIrregularPolygon(
  9399.         [in] double X0, // X coordinate of first endpoint.
  9400.         [in] double Y0, // Y coordinate of first endpoint.
  9401.         [in] double Z0, // Z coordinate of first endpoint.
  9402.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9403.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9404.         );
  9405.  
  9406.         /**
  9407.          * Creates and adds a double line to the collection.
  9408.          *
  9409.          * @see TCADAPI TCWDoubleLineParallel function
  9410.          */
  9411.     [
  9412.          helpcontext(0x1006001A)
  9413.         ,helpstring("Creates and adds a double line to the collection.")
  9414.         ,restricted, hidden
  9415.     ]
  9416.     HRESULT  AddDoubleLineParallel(
  9417.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  9418.         [in] double X0, // X coordinate of the new line.
  9419.         [in] double Y0, // Y coordinate of the new line.
  9420.         [in] double Z0, // Z coordinate of the new line.
  9421.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9422.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9423.         );
  9424.  
  9425.         /**
  9426.          * Creates and adds a circle to the collection.
  9427.          */
  9428.     [
  9429.          helpcontext(0x1006001B)
  9430.         ,helpstring("Creates and adds a circle to the collection.")
  9431.         ,restricted, hidden
  9432.     ]
  9433.     HRESULT  AddCircleTanToArc(
  9434.         [in] IGraphic* TangentTo, // Arc or circle to draw new circle tangent to.
  9435.         [in] double X0, // X coordinate of the new circle's center point.
  9436.         [in] double Y0, // Y coordinate of the new circle's center point.
  9437.         [in] double Z0, // Z coordinate of the new circle's center point.
  9438.         [in] double X1, // X coordinate of the new circle's radius point.
  9439.         [in] double Y1, // Y coordinate of the new circle's radius point.
  9440.         [in] double Z1, // Z coordinate of the new circle's radius point.
  9441.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9442.         );
  9443.  
  9444.         /**
  9445.          * Creates and adds a circle to the collection.
  9446.          */
  9447.     [
  9448.          helpcontext(0x1006001C)
  9449.         ,helpstring("Creates and adds a circle to the collection.")
  9450.         ,restricted, hidden
  9451.     ]
  9452.     HRESULT  AddCircleTanToLine(
  9453.         [in] IGraphic* TangentTo, // Line to draw new circle tangent to.
  9454.         [in] double X0, // X coordinate of the new circle's center point.
  9455.         [in] double Y0, // Y coordinate of the new circle's center point.
  9456.         [in] double Z0, // Z coordinate of the new circle's center point.
  9457.         [in] double X1, // X coordinate of the new circle's radius point.
  9458.         [in] double Y1, // Y coordinate of the new circle's radius point.
  9459.         [in] double Z1, // Z coordinate of the new circle's radius point.
  9460.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9461.         );
  9462.  
  9463.         /**
  9464.          * Creates and adds a circle to the collection.
  9465.          */
  9466.     [
  9467.          helpcontext(0x1006001D)
  9468.         ,helpstring("Creates and adds a circle to the collection.")
  9469.         ,restricted, hidden
  9470.     ]
  9471.     HRESULT  AddCircleTan3Arcs(
  9472.         [in] IGraphic* Arc1, // First arc or circle.
  9473.         [in] IGraphic* Arc2, // Second arc or circle.
  9474.         [in] IGraphic* Arc3, // Third arc or circle.
  9475.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9476.         );
  9477.  
  9478.         /**
  9479.          * Creates and adds an arc to the collection.
  9480.          */
  9481.     [
  9482.          helpcontext(0x1006001E)
  9483.         ,helpstring("Creates and adds an arc to the collection.")
  9484.         ,restricted, hidden
  9485.     ]
  9486.     HRESULT  AddArcTanToArc(
  9487.         [in] IGraphic* TangentTo, // Arc or circle to draw arc tangent to.
  9488.         [in] double X0, // X coordinate of new arc's radius point.
  9489.         [in] double Y0, // Y coordinate of new arc's radius point.
  9490.         [in] double Z0, // Z coordinate of new arc's radius ponit.
  9491.         [in] double X1, // X coordinate of point on existing arc.
  9492.         [in] double Y1, // Y coordinate of point on existing arc.
  9493.         [in] double Z1, // Z coordinate of ponit on existing arc.
  9494.         [in] double StartAngle, // Starting angle in radians.
  9495.         [in] double EndAngle, // Ending angle in radians.
  9496.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9497.         );
  9498.  
  9499.         /**
  9500.          * Creates and adds an arc to the collection.
  9501.          */
  9502.     [
  9503.          helpcontext(0x1006001F)
  9504.         ,helpstring("Creates and adds an arc to the collection.")
  9505.         ,restricted, hidden
  9506.     ]
  9507.     HRESULT  AddArcTanToLine(
  9508.         [in] IGraphic* TangentTo, // Line to draw arc tangent to.
  9509.         [in] double X0, // X coordinate of new arc's radius point.
  9510.         [in] double Y0, // Y coordinate of new arc's radius point.
  9511.         [in] double Z0, // Z coordinate of new arc's radius ponit.
  9512.         [in] double X1, // X coordinate of point on existing line.
  9513.         [in] double Y1, // Y coordinate of point on existing line.
  9514.         [in] double Z1, // Z coordinate of ponit on existing line.
  9515.         [in] double StartAngle, // Starting angle in radians.
  9516.         [in] double EndAngle, // Ending angle in radians.
  9517.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9518.         );
  9519.  
  9520.         /**
  9521.          * Creates and adds an arc to the collection.
  9522.          */
  9523.     [
  9524.          helpcontext(0x10060020)
  9525.         ,helpstring("Creates and adds an arc to the collection.")
  9526.         ,restricted, hidden
  9527.     ]
  9528.     HRESULT  AddArcTanTo3Arcs(
  9529.         [in] IGraphic* Arc1, // First arc or circle.
  9530.         [in] IGraphic* Arc2, // Second arc or circle.
  9531.         [in] IGraphic* Arc3, // Third arc or circle.
  9532.         [in] double StartAngle, // Starting angle in radians.
  9533.         [in] double EndAngle, // Ending angle in radians.
  9534.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9535.         );
  9536.  
  9537.         /**
  9538.          * Creates and adds a horizontal dimension to the collection.
  9539.          *
  9540.          * @see TCADAPI TCWDimensionHorizontal, TCWDimensionHorizontalEntity functions
  9541.          */
  9542.     [
  9543.          helpcontext(0x10060021)
  9544.         ,helpstring("Creates and adds a horizontal dimension to the collection.")
  9545.         ,restricted, hidden
  9546.     ]
  9547.     HRESULT  AddDimensionHorizontal(
  9548.         [in] double X0, // X coordinate of first extension line.
  9549.         [in] double Y0, // Y coordinate of first extension line.
  9550.         [in] double Z0, // Z coordinate of first extension line.
  9551.         [in] double X1, // X coordinate of second extension line.
  9552.         [in] double Y1, // Y coordinate of second extension line.
  9553.         [in] double Z1, // Z coordinate of second extension line.
  9554.         [in] double X2, // X coordinate of dimension.
  9555.         [in] double Y2, // Y coordinate of dimension.
  9556.         [in] double Z2, // Z coordinate of dimension.
  9557.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9558.         );
  9559.  
  9560.         /**
  9561.          * Creates and adds a vertical dimension to the collection.
  9562.          *
  9563.          * @see TCADAPI TCWDimensionVertical, TCWDimensionVerticalEntity functions
  9564.          */
  9565.     [
  9566.          helpcontext(0x10060022)
  9567.         ,helpstring("Creates and adds a vertical dimension to the collection.")
  9568.         ,restricted, hidden
  9569.     ]
  9570.     HRESULT  AddDimensionVertical(
  9571.         [in] double X0, // X coordinate of first extension line.
  9572.         [in] double Y0, // Y coordinate of first extension line.
  9573.         [in] double Z0, // Z coordinate of first extension line.
  9574.         [in] double X1, // X coordinate of second extension line.
  9575.         [in] double Y1, // Y coordinate of second extension line.
  9576.         [in] double Z1, // Z coordinate of second extension line.
  9577.         [in] double X2, // X coordinate of dimension.
  9578.         [in] double Y2, // Y coordinate of dimension.
  9579.         [in] double Z2, // Z coordinate of dimension.
  9580.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9581.         );
  9582.  
  9583.         /**
  9584.          * Creates and adds a parallel dimension to the collection.
  9585.          *
  9586.          * @see TCADAPI TCWDimensionParallel, TCWDimensionParallelEntity functions
  9587.          */
  9588.     [
  9589.          helpcontext(0x10060023)
  9590.         ,helpstring("Creates and adds a parallel dimension to the collection.")
  9591.         ,restricted, hidden
  9592.     ]
  9593.     HRESULT  AddDimensionParallel(
  9594.         [in] double X0, // X coordinate of first extension line.
  9595.         [in] double Y0, // Y coordinate of first extension line.
  9596.         [in] double Z0, // Z coordinate of first extension line.
  9597.         [in] double X1, // X coordinate of second extension line.
  9598.         [in] double Y1, // Y coordinate of second extension line.
  9599.         [in] double Z1, // Z coordinate of second extension line.
  9600.         [in] double X2, // X coordinate of dimension.
  9601.         [in] double Y2, // Y coordinate of dimension.
  9602.         [in] double Z2, // Z coordinate of dimension.
  9603.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9604.         );
  9605.  
  9606.         /**
  9607.          * Creates and adds a rotated dimension to the collection.
  9608.          */
  9609.     [
  9610.          helpcontext(0x10060024)
  9611.         ,helpstring("Creates and adds a rotated dimension to the collection.")
  9612.         ,restricted, hidden
  9613.     ]
  9614.     HRESULT  AddDimensionRotated(
  9615.         [in] double X0, // X coordinate of first endpoint defining angle and direction.
  9616.         [in] double Y0, // Y coordinate of first endpoint defining angle and direction.
  9617.         [in] double Z0, // Z coordinate of first endpoint defining angle and direction.
  9618.         [in] double X1, // X coordinate of second endpoint defining angle and direction.
  9619.         [in] double Y1, // Y coordinate of second endpoint defining angle and direction.
  9620.         [in] double Z1, // Z coordinate of second endpoint defining angle and direction.
  9621.         [in] double X2, // X coordinate of first extension line.
  9622.         [in] double Y2, // Y coordinate of first extension line.
  9623.         [in] double Z2, // Z coordinate of first extension line.
  9624.         [in] double X3, // X coordinate of second extension line.
  9625.         [in] double Y3, // Y coordinate of second extension line.
  9626.         [in] double Z3, // Z coordinate of second extension line.
  9627.         [in] double X4, // X coordinate of dimension.
  9628.         [in] double Y4, // Y coordinate of dimension.
  9629.         [in] double Z4, // Z coordinate of dimension.
  9630.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9631.         );
  9632.  
  9633.         /**
  9634.          * Creates and adds a datum dimension to the collection.
  9635.          */
  9636.     [
  9637.          helpcontext(0x10060025)
  9638.         ,helpstring("Creates and adds a datum dimension to the collection.")
  9639.         ,restricted, hidden
  9640.     ]
  9641.     HRESULT  AddDimensionDatum(
  9642.         [in] double X0, // X coordinate of first extension line.
  9643.         [in] double Y0, // Y coordinate of first extension line.
  9644.         [in] double Z0, // Z coordinate of first extension line.
  9645.         [in] double X1, // X coordinate of second extension line.
  9646.         [in] double Y1, // Y coordinate of second extension line.
  9647.         [in] double Z1, // Z coordinate of second extension line.
  9648.         [in] double X2, // X coordinate of dimension.
  9649.         [in] double Y2, // Y coordinate of dimension.
  9650.         [in] double Z2, // Z coordinate of dimension.
  9651.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9652.         );
  9653.  
  9654.         /**
  9655.          * Creates and adds an angular dimension to the collection.
  9656.          */
  9657.     [
  9658.          helpcontext(0x10060026)
  9659.         ,helpstring("Creates and adds an angular dimension to the collection.")
  9660.         ,restricted, hidden
  9661.     ]
  9662.     HRESULT  AddDimensionAngular(
  9663.         [in] IGraphic* Line1, // First graphic.
  9664.         [in] IGraphic* Line2, // Second graphic.
  9665.         [in] double X0, // X coordinate of dimension.
  9666.         [in] double Y0, // Y coordinate of dimension.
  9667.         [in] double Z0, // Z coordinate of dimension.
  9668.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9669.         );
  9670.  
  9671.         /**
  9672.          * Creates and adds a radial dimension to the collection.
  9673.          */
  9674.     [
  9675.          helpcontext(0x10060027)
  9676.         ,helpstring("Creates and adds a radial dimension to the collection.")
  9677.         ,restricted, hidden
  9678.     ]
  9679.     HRESULT  AddDimensionRadius(
  9680.         [in] IGraphic* Arc, // Arc or circle.
  9681.         [in] double X0, // X coordinate of dimension text.
  9682.         [in] double Y0, // Y coordinate of dimension text.
  9683.         [in] double Z0, // Z coordinate of dimension text.
  9684.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9685.         );
  9686.  
  9687.         /**
  9688.          * Creates and adds a diameter dimension to the collection.
  9689.          */
  9690.     [
  9691.          helpcontext(0x10060028)
  9692.         ,helpstring("Creates and adds a diameter dimension to the collection.")
  9693.         ,restricted, hidden
  9694.     ]
  9695.     HRESULT  AddDimensionDiameter(
  9696.         [in] IGraphic* Arc, // Arc or circle.
  9697.         [in] double X0, // X coordinate of dimension text.
  9698.         [in] double Y0, // Y coordinate of dimension text.
  9699.         [in] double Z0, // Z coordinate of dimension text.
  9700.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9701.         );
  9702.  
  9703. #endif //METHOD_OVERFLOW_BUG
  9704.  
  9705.         /**
  9706.          * Creates and adds a new Graphic object to the collection.
  9707.          */
  9708.         [
  9709.              helpcontext(0x10060029)
  9710.             ,helpstring("Creates and adds a new Graphic object to the collection.")
  9711.         ]
  9712.         HRESULT  Add(
  9713.             [in, optional] VARIANT* GraphicType, // The type of the Graphic object.
  9714.             [in, optional] VARIANT* RegenMethod, // A RegenMethod object or index.
  9715.             [in, optional] VARIANT* Inherit, // True if the new Graphic object will inherit the properties of its parent.
  9716.             [in, optional] VARIANT* Style, // Not used in current implementation.
  9717.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  9718.             [in, optional] VARIANT* After, // The Graphic object or index that will precede the added Graphic object.
  9719.             [out, retval] IGraphic** prop // The newly created Graphic object.
  9720.             );
  9721.  
  9722.         /**
  9723.          * Adds an existing Graphic object to the collection.
  9724.          */
  9725.         [
  9726.              helpcontext(0x1006002A)
  9727.             ,helpstring("Adds an existing Graphic object to the collection.")
  9728.         ]
  9729.         HRESULT  AddGraphic(
  9730.             [in] IGraphic* Graphic,    // The Graphic object to add.
  9731.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  9732.             [in, optional] VARIANT* After // The Graphic object or index that will precede the added Graphic object.
  9733.             );
  9734.  
  9735.         /**
  9736.          * Returns the collection's bounding box.
  9737.          */
  9738.         [
  9739.              helpcontext(0x1006002B)
  9740.             ,helpstring("Returns the collection's bounding box.")
  9741.         ]
  9742.         HRESULT  CalcBoundingBox(
  9743.             [in, optional] VARIANT* Transform, // A transformation Matrix object.
  9744.             [out, retval] BoundingBox** prop // The BoundingBox object.
  9745.             );
  9746.  
  9747.         /**
  9748.          * Clears the contents of the collection.
  9749.          */
  9750.         [
  9751.              helpcontext(0x1006002C)
  9752.             ,helpstring("Clears the contents of the collection.")
  9753.         ]
  9754.         HRESULT  Clear(
  9755.             [in, optional] VARIANT* CosmeticOnly // True to only clear cosmetics.
  9756.             );
  9757.  
  9758.         /**
  9759.          * Clears construction lines and arcs.
  9760.          *
  9761.          * @see TCADAPI TCWClearAllConstructions function.
  9762.          */
  9763.         [
  9764.              helpcontext(0x1006002D)
  9765.             ,helpstring("Clears construction lines and arcs.")
  9766.             ,restricted, hidden
  9767.         ]
  9768.         HRESULT  ClearConstruction(
  9769.             );
  9770.  
  9771.         /**
  9772.          * Copies the contents of the collection to the Clipboard.
  9773.          */
  9774.         [
  9775.              helpcontext(0x1006002E)
  9776.             ,helpstring("Copies the contents of the collection to the Clipboard.")
  9777.             ,restricted, hidden
  9778.         ]
  9779.         HRESULT  Copy(
  9780.             );
  9781.  
  9782.         /**
  9783.          * Cuts the contents of the collection to the Clipboard.
  9784.          */
  9785.         [
  9786.              helpcontext(0x1006002F)
  9787.             ,helpstring("Cuts the contents of the collection to the Clipboard.")
  9788.             ,restricted, hidden
  9789.         ]
  9790.         HRESULT  Cut(
  9791.             );
  9792.  
  9793.         /**
  9794.          * Draws all the Graphic objects in the collection.
  9795.          */
  9796.     [
  9797.          helpcontext(0x10060030)
  9798.         ,helpstring("Draws all the Graphic objects in the collection.")
  9799.     ]
  9800.     HRESULT  Draw(
  9801.         [in, optional] VARIANT* View // If supplied, the View object to draw on.
  9802.         );
  9803.  
  9804.         /**
  9805.          * Removes an item from the collection.
  9806.          */
  9807.         [
  9808.              helpcontext(0x10060031)
  9809.             ,helpstring("Removes an item from the collection.")
  9810.         ]
  9811.         HRESULT  Remove(
  9812.             [in] VARIANT* Index, // The index of item to be removed.
  9813.             [out, retval] IGraphic** prop // The Graphic object that was removed.
  9814.             );
  9815.  
  9816.         /**
  9817.          * Selects all the Graphic object's in the collection.
  9818.          *
  9819.          * @see TCADAPI TCWSelectAll function.
  9820.          */
  9821.         [
  9822.              helpcontext(0x10060032)
  9823.             ,helpstring("Selects all the Graphic object's in the collection.")
  9824.         ]
  9825.         HRESULT  Select(
  9826.             );
  9827.  
  9828.         /**
  9829.          * Unselects all the Graphic object's in the collection.
  9830.          *
  9831.          * @see TCADAPI TCWDeselectAll function.
  9832.          */
  9833.         [
  9834.              helpcontext(0x10060033)
  9835.             ,helpstring("Unselects all the Graphic object's in the collection.")
  9836.         ]
  9837.         HRESULT  Unselect(
  9838.             );
  9839.  
  9840.         //////////////////////////// AddXXXMethods \\\\\\\\\\\\\\\\\\\\\\\\\\\\
  9841.  
  9842.         /**
  9843.          * Creates and adds a construction line to the collection.
  9844.          *
  9845.          * @see TCADAPI TCWConstructionAngularLine function
  9846.          */
  9847.     [
  9848.          helpcontext(0x10060034)
  9849.         ,helpstring("Creates and adds a construction line to the collection.")
  9850.         ,restricted, hidden
  9851.     ]
  9852.     HRESULT  AddConstructionAngularLine(
  9853.         [in] double X0, // X coordinate of the first point on line.
  9854.         [in] double Y0, // Y coordinate of the first point on line.
  9855.         [in] double Z0, // Z coordinate of the first point on line.
  9856.         [in] double X1, // X coordinate of the second point on line.
  9857.         [in] double Y1, // Y coordinate of the second point on line.
  9858.         [in] double Z1, // Z coordinate of the second point on line.
  9859.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9860.         );
  9861.  
  9862.         /**
  9863.          * Creates and adds a construction line to the collection.
  9864.          *
  9865.          * @see TCADAPI TCWConstructionHorizontalLine function
  9866.          */
  9867.     [
  9868.          helpcontext(0x10060035)
  9869.         ,helpstring("Creates and adds a construction line to the collection.")
  9870.         ,restricted, hidden
  9871.     ]
  9872.     HRESULT  AddConstructionHorizontalLine(
  9873.         [in] double X0, // X coordinate of the line.
  9874.         [in] double Y0, // Y coordinate of the line.
  9875.         [in] double Z0, // Z coordinate of the line.
  9876.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9877.         );
  9878.  
  9879.         /**
  9880.          * Creates and adds a construction line to the collection.
  9881.          *
  9882.          * @see TCADAPI TCWConstructionVerticalLine function
  9883.          */
  9884.     [
  9885.          helpcontext(0x10060036)
  9886.         ,helpstring("Creates and adds a construction line to the collection.")
  9887.         ,restricted, hidden
  9888.     ]
  9889.     HRESULT  AddConstructionVerticalLine(
  9890.         [in] double X0, // X coordinate of the line.
  9891.         [in] double Y0, // Y coordinate of the line.
  9892.         [in] double Z0, // Z coordinate of the line.
  9893.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9894.         );
  9895.  
  9896.         /**
  9897.          * Creates and adds a construction circle to the collection.
  9898.          *
  9899.          * @see TCADAPI TCWConstructionCenterAndPointCircle function
  9900.          */
  9901.     [
  9902.          helpcontext(0x10060037)
  9903.         ,helpstring("Creates and adds a construction circle to the collection.")
  9904.         ,restricted, hidden
  9905.     ]
  9906.     HRESULT  AddConstructionCenterAndPointCircle(
  9907.         [in] double X0, // X coordinate of the center point.
  9908.         [in] double Y0, // Y coordinate of the center point.
  9909.         [in] double Z0, // Z coordinate of the center point.
  9910.         [in] double X1, // X coordinate of the perimeter point.
  9911.         [in] double Y1, // Y coordinate of the perimeter point.
  9912.         [in] double Z1, // Z coordinate of the perimeter point.
  9913.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9914.         );
  9915.  
  9916.         /**
  9917.          * Creates and adds a construction circle to the collection.
  9918.          *
  9919.          * @see TCADAPI TCWConstructionDoublePointCircle function
  9920.          */
  9921.     [
  9922.          helpcontext(0x10060038)
  9923.         ,helpstring("Creates and adds a construction circle to the collection.")
  9924.         ,restricted, hidden
  9925.     ]
  9926.     HRESULT  AddConstructionDoublePointCircle(
  9927.         [in] double X0, // X coordinate of the first point.
  9928.         [in] double Y0, // Y coordinate of the first point.
  9929.         [in] double Z0, // Z coordinate of the first point.
  9930.         [in] double X1, // X coordinate of the second point.
  9931.         [in] double Y1, // Y coordinate of the second point.
  9932.         [in] double Z1, // Z coordinate of the second point.
  9933.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9934.         );
  9935.  
  9936.         /**
  9937.          * Creates and adds a construction circle to the collection.
  9938.          *
  9939.          * @see TCADAPI TCWConstructionTriplePointCircle function
  9940.          */
  9941.     [
  9942.          helpcontext(0x10060039)
  9943.         ,helpstring("Creates and adds a construction circle to the collection.")
  9944.         ,restricted, hidden
  9945.     ]
  9946.     HRESULT  AddConstructionTriplePointCircle(
  9947.         [in] double X0, // X coordinate of the first point.
  9948.         [in] double Y0, // Y coordinate of the first point.
  9949.         [in] double Z0, // Z coordinate of the first point.
  9950.         [in] double X1, // X coordinate of the second point.
  9951.         [in] double Y1, // Y coordinate of the second point.
  9952.         [in] double Z1, // Z coordinate of the second point.
  9953.         [in] double X2, // X coordinate of the third point.
  9954.         [in] double Y2, // Y coordinate of the third point.
  9955.         [in] double Z2, // Z coordinate of the third point.
  9956.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9957.         );
  9958.  
  9959.         /**
  9960.          * Creates and adds a dot marker to the collection.
  9961.          *
  9962.          * @see TCADAPI TCWDot function
  9963.          */
  9964.     [
  9965.          helpcontext(0x1006003A)
  9966.         ,helpstring("Creates and adds a dot marker to the collection.")
  9967.         ,restricted, hidden
  9968.     ]
  9969.     HRESULT  AddDot(
  9970.         [in] double X0, // X coordinate of the point.
  9971.         [in] double Y0, // Y coordinate of the point.
  9972.         [in] double Z0, // Z coordinate of the point.
  9973.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9974.         );
  9975.  
  9976.         /**
  9977.          * Creates and adds a star to the collection.
  9978.          *
  9979.          * @see TCADAPI TCWStar function
  9980.          */
  9981.     [
  9982.          helpcontext(0x1006003B)
  9983.         ,helpstring("Creates and adds a star marker to the collection.")
  9984.         ,restricted, hidden
  9985.     ]
  9986.     HRESULT  AddStar(
  9987.         [in] double X0, // X coordinate of the point.
  9988.         [in] double Y0, // Y coordinate of the point.
  9989.         [in] double Z0, // Z coordinate of the point.
  9990.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9991.         );
  9992.  
  9993.         /**
  9994.          * Creates and adds a square marker to the collection.
  9995.          *
  9996.          * @see TCADAPI TCWSquare function
  9997.          */
  9998.     [
  9999.          helpcontext(0x1006003C)
  10000.         ,helpstring("Creates and adds a square marker to the collection.")
  10001.         ,restricted, hidden
  10002.     ]
  10003.     HRESULT  AddSquare(
  10004.         [in] double X0, // X coordinate of the point.
  10005.         [in] double Y0, // Y coordinate of the point.
  10006.         [in] double Z0, // Z coordinate of the point.
  10007.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10008.         );
  10009.  
  10010.         /**
  10011.          * Creates and adds a cross marker to the collection.
  10012.          *
  10013.          * @see TCADAPI TCWCross function
  10014.          */
  10015.     [
  10016.          helpcontext(0x1006003D)
  10017.         ,helpstring("Creates and adds a cross marker to the collection.")
  10018.         ,restricted, hidden
  10019.     ]
  10020.     HRESULT  AddCross(
  10021.         [in] double X0, // X coordinate of the point.
  10022.         [in] double Y0, // Y coordinate of the point.
  10023.         [in] double Z0, // Z coordinate of the point.
  10024.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10025.         );
  10026.  
  10027.         /**
  10028.          * Creates and adds a circle marker to the collection.
  10029.          *
  10030.          * @see TCADAPI TCWCircle function
  10031.          */
  10032.     [
  10033.          helpcontext(0x1006003E)
  10034.         ,helpstring("Creates and adds a circle marker to the collection.")
  10035.         ,restricted, hidden
  10036.     ]
  10037.     HRESULT  AddCircle(
  10038.         [in] double X0, // X coordinate of the point.
  10039.         [in] double Y0, // Y coordinate of the point.
  10040.         [in] double Z0, // Z coordinate of the point.
  10041.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10042.         );
  10043.  
  10044.         /**
  10045.          * Creates and adds a single line segment to the collection.
  10046.          *
  10047.          * @see TCADAPI TCWLineSingle function
  10048.          */
  10049.     [
  10050.          helpcontext(0x1006003F)
  10051.         ,helpstring("Creates and adds a single line segment to the collection.")
  10052.         ,restricted, hidden
  10053.     ]
  10054.     HRESULT  AddLineSingle(
  10055.         [in] double X0, // X coordinate of the first endpoint.
  10056.         [in] double Y0, // Y coordinate of the first endpoint.
  10057.         [in] double Z0, // Z coordinate of the first endpoint.
  10058.         [in] double X1, // X coordinate of the second endpoint.
  10059.         [in] double Y1, // Y coordinate of the second endpoint.
  10060.         [in] double Z1, // Z coordinate of the second endpoint.
  10061.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10062.         );
  10063.  
  10064.         /**
  10065.          * Creates and adds a regular polygon to the collection.
  10066.          *
  10067.          * @see TCADAPI TCWLinePolygon function
  10068.          */
  10069.     [
  10070.          helpcontext(0x10060040)
  10071.         ,helpstring("Creates and adds a regular polygon to the collection.")
  10072.         ,restricted, hidden
  10073.     ]
  10074.     HRESULT  AddLinePolygon(
  10075.         [in] double X0, // X coordinate of the center point.
  10076.         [in] double Y0, // Y coordinate of the center point.
  10077.         [in] double Z0, // Z coordinate of the center point.
  10078.         [in] double X1, // X coordinate of the corner point.
  10079.         [in] double Y1, // Y coordinate of the corner point.
  10080.         [in] double Z1, // Z coordinate of the corner point.
  10081.         [in] long nsides, // number of sides.
  10082.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10083.         );
  10084.  
  10085.         /**
  10086.          * Creates and adds a rectangle to the collection.
  10087.          *
  10088.          * @see TCADAPI TCWLineRectangle function
  10089.          */
  10090.     [
  10091.          helpcontext(0x10060041)
  10092.         ,helpstring("Creates and adds a rectangle to the collection.")
  10093.         ,restricted, hidden
  10094.     ]
  10095.     HRESULT  AddLineRectangle(
  10096.         [in] double X0, // X coordinate of the upper left corner.
  10097.         [in] double Y0, // Y coordinate of the upper left corner.
  10098.         [in] double Z0, // Z coordinate of the upper left corner.
  10099.         [in] double X1, // X coordinate of the lower right corner.
  10100.         [in] double Y1, // Y coorindate of the lower right corner.
  10101.         [in] double Z1, // Z coorindate of the lower right corner.
  10102.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10103.         );
  10104.  
  10105.         /**
  10106.          * Creates and adds a rotated rectangle to the collection.
  10107.          *
  10108.          * @see TCADAPI TCWLineRotatedRectangle function
  10109.          */
  10110.     [
  10111.          helpcontext(0x10060042)
  10112.         ,helpstring("Creates and adds a rotated rectangle to the collection.")
  10113.         ,restricted, hidden
  10114.     ]
  10115.     HRESULT  AddLineRotatedRectangle(
  10116.         [in] double X0, // X coordinate of the upper left corner.
  10117.         [in] double Y0, // Y coordinate of the upper left corner.
  10118.         [in] double Z0, // Z coordinate of the upper left corner.
  10119.         [in] double X1, // X coordinate of the lower right corner.
  10120.         [in] double Y1, // Y coorindate of the lower right corner.
  10121.         [in] double Z1, // Z coorindate of the lower right corner.
  10122.         [in] double Height, // Height of the rectangle.
  10123.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10124.         );
  10125.  
  10126.         /**
  10127.          * Creates and adds a single line segment to the collection.
  10128.          *
  10129.          * @see TCADAPI TCWLinePerpendicular function
  10130.          */
  10131.     [
  10132.          helpcontext(0x10060043)
  10133.         ,helpstring("Creates and adds a single line segment to the collection.")
  10134.         ,restricted, hidden
  10135.     ]
  10136.     HRESULT  AddLinePerpendicular(
  10137.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  10138.         [in] double X0, // X coordinate of the point on the existing line.
  10139.         [in] double Y0, // Y coordinate of the point on the existing line.
  10140.         [in] double Z0, // Z coordinate of the point on the existing line.
  10141.         [in] double X1, // X coordinate of the second point on the new line.
  10142.         [in] double Y1, // Y coordinate of the second point on the new line.
  10143.         [in] double Z1, // Z coordinate of the second point on the new line.
  10144.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10145.         );
  10146.  
  10147.         /**
  10148.          * Creates and adds a single line segment to the collection.
  10149.          *
  10150.          * @see TCADAPI TCWLineParallel function
  10151.          */
  10152.     [
  10153.          helpcontext(0x10060044)
  10154.         ,helpstring("Creates and adds a single line segment to the collection.")
  10155.         ,restricted, hidden
  10156.     ]
  10157.     HRESULT  AddLineParallel(
  10158.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  10159.         [in] double X0, // X coordinate of the new line.
  10160.         [in] double Y0, // Y coordinate of the new line.
  10161.         [in] double Z0, // Z coordinate of the new line.
  10162.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10163.         );
  10164.  
  10165.         /**
  10166.          * Creates and adds a multiple segment line to the collection.
  10167.          * The returned Graphic object contains only a beginning vertex.  The user must
  10168.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  10169.          * and a Graphic.Finish call to complete the Graphic object.
  10170.          *
  10171.          * @see TCADAPI TCWLineMultiline function
  10172.          */
  10173.     [
  10174.          helpcontext(0x10060045)
  10175.         ,helpstring("Creates and adds a multiple segment line to the collection.")
  10176.         ,restricted, hidden
  10177.     ]
  10178.     HRESULT  AddLineMultiline(
  10179.         [in] double X0, // X coordinate of first endpoint.
  10180.         [in] double Y0, // Y coordinate of first endpoint.
  10181.         [in] double Z0, // Z coordinate of first endpoint.
  10182.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10183.         );
  10184.  
  10185.         /**
  10186.          * Creates and adds an irregular polygon to the collection.
  10187.          * The returned Graphic object contains only a beginning vertex.  The user must
  10188.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  10189.          * and a Graphic.Close call to complete the Graphic object.
  10190.          *
  10191.          * @see TCADAPI TCWLineIrregularPolygon function
  10192.          */
  10193.     [
  10194.          helpcontext(0x10060046)
  10195.         ,helpstring("Creates and adds an irregular polygon to the collection.")
  10196.         ,restricted, hidden
  10197.     ]
  10198.     HRESULT  AddLineIrregularPolygon(
  10199.         [in] double X0, // X coordinate of first endpoint.
  10200.         [in] double Y0, // Y coordinate of first endpoint.
  10201.         [in] double Z0, // Z coordinate of first endpoint.
  10202.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10203.         );
  10204.  
  10205.         /**
  10206.          * Creates and adds a bezier curve to the collection.
  10207.          * The returned Graphic object contains only a beginning vertex.  The user must
  10208.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  10209.          * and a Graphic.Finish call to complete the Graphic object.
  10210.          *
  10211.          * @see TCADAPI TCWCurveBezier function
  10212.          */
  10213.     [
  10214.          helpcontext(0x10060047)
  10215.         ,helpstring("Creates and adds a bezier curve to the collection.")
  10216.         ,restricted, hidden
  10217.     ]
  10218.     HRESULT  AddCurveBezier(
  10219.         [in] double X0, // X coordinate of the first endpoint.
  10220.         [in] double Y0, // Y coordinate of the first endpoint.
  10221.         [in] double Z0, // Z coordinate of the first endpoint.
  10222.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10223.         );
  10224.  
  10225.         /**
  10226.          * Creates and adds a cubic spline curve to the collection.
  10227.          * The returned Graphic object contains only a beginning vertex.  The user must
  10228.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  10229.          * and a Graphic.Finish call to complete the Graphic object.
  10230.          *
  10231.          * @see TCADAPI TCWCurveSpline function
  10232.          */
  10233.     [
  10234.          helpcontext(0x10060048)
  10235.         ,helpstring("Creates and adds a cubic spline curve to the collection.")
  10236.         ,restricted, hidden
  10237.     ]
  10238.     HRESULT  AddCurveSpline(
  10239.         [in] double X0, // X coordinate of the first endpoint.
  10240.         [in] double Y0, // Y coordinate of the first endpoint.
  10241.         [in] double Z0, // Z coordinate of the first endpoint.
  10242.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10243.         );
  10244.  
  10245.         /**
  10246.          * Creates and adds a circle to the collection.
  10247.          *
  10248.          * @see TCADAPI TCWCircleCenterAndPoint function
  10249.          */
  10250.     [
  10251.          helpcontext(0x10060049)
  10252.         ,helpstring("Creates and adds a circle to the collection.")
  10253.         ,restricted, hidden
  10254.     ]
  10255.     HRESULT  AddCircleCenterAndPoint(
  10256.         [in] double X0, // X coordinate of the center point.
  10257.         [in] double Y0, // Y coordinate of the center point.
  10258.         [in] double Z0, // Z coordinate of the cneter point.
  10259.         [in] double X1, // X coordinate of the radius point.
  10260.         [in] double Y1, // Y coordinate of the radius point.
  10261.         [in] double Z1, // Z coordinate of the radius point.
  10262.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10263.         );
  10264.  
  10265.         /**
  10266.          * Creates and adds a circle to the collection.
  10267.          *
  10268.          * @see TCADAPI TCWCircleDoublePoint function
  10269.          */
  10270.     [
  10271.          helpcontext(0x1006004A)
  10272.         ,helpstring("Creates and adds a circle to the collection.")
  10273.         ,restricted, hidden
  10274.     ]
  10275.     HRESULT  AddCircleDoublePoint(
  10276.         [in] double X0, // X coordinate of the first point.
  10277.         [in] double Y0, // Y coordinate of the first point.
  10278.         [in] double Z0, // Z coordinate of the first point.
  10279.         [in] double X1, // X coordinate of the second point.
  10280.         [in] double Y1, // Y coordinate of the second point.
  10281.         [in] double Z1, // Z coordinate of the second point.
  10282.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10283.         );
  10284.  
  10285.         /**
  10286.          * Creates and adds a circle to the collection.
  10287.          *
  10288.          * @see TCADAPI TCWCircleTriplePoint function
  10289.          */
  10290.     [
  10291.          helpcontext(0x1006004B)
  10292.         ,helpstring("Creates and adds a circle to the collection.")
  10293.         ,restricted, hidden
  10294.     ]
  10295.     HRESULT  AddCircleTriplePoint(
  10296.         [in] double X0, // X coordinate of the first point.
  10297.         [in] double Y0, // Y coordinate of the first point.
  10298.         [in] double Z0, // Z coordinate of the first point.
  10299.         [in] double X1, // X coordinate of the second point.
  10300.         [in] double Y1, // Y coordinate of the second point.
  10301.         [in] double Z1, // Z coordinate of the second point.
  10302.         [in] double X2, // X coordinate of the third point.
  10303.         [in] double Y2, // Y coordinate of the third point.
  10304.         [in] double Z2, // Z coordinate of the third point.
  10305.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10306.         );
  10307.  
  10308.         /**
  10309.          * Creates and adds a ellipse to the collection.
  10310.          *
  10311.          * @see TCADAPI TCWEllipse function
  10312.          */
  10313.     [
  10314.          helpcontext(0x1006004C)
  10315.         ,helpstring("Creates and adds a ellipse to the collection.")
  10316.         ,restricted, hidden
  10317.     ]
  10318.     HRESULT  AddEllipse(
  10319.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  10320.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  10321.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  10322.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  10323.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  10324.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  10325.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10326.         );
  10327.  
  10328.         /**
  10329.          * Creates and adds a ellipse to the collection.
  10330.          *
  10331.          * @see TCADAPI TCWEllipseRotatedEllipse function
  10332.          */
  10333.     [
  10334.          helpcontext(0x1006004D)
  10335.         ,helpstring("Creates and adds a ellipse to the collection.")
  10336.         ,restricted, hidden
  10337.     ]
  10338.     HRESULT  AddEllipseRotatedEllipse(
  10339.         [in] double X0, // X coordinate of ellipse's center point.
  10340.         [in] double Y0, // Y coordinate of ellipse's center point.
  10341.         [in] double Z0, // Z coordinate of ellipse's center point.
  10342.         [in] double X1, // X coordinate of major axis radius point.
  10343.         [in] double Y1, // Y coordinate of major axis radius point.
  10344.         [in] double Z1, // Z coordinate of major axis radius point.
  10345.         [in] double X2, // X coordinate of minor axis radius point.
  10346.         [in] double Y2, // Y coordinate of minor axis radius point.
  10347.         [in] double Z2, // Z coordinate of minor axis radius point.
  10348.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10349.         );
  10350.  
  10351.         /**
  10352.          * Creates and adds a ellipse to the collection.
  10353.          *
  10354.          * @see TCADAPI TCWEllipseFixedRatio function
  10355.          */
  10356.     [
  10357.          helpcontext(0x1006004E)
  10358.         ,helpstring("Creates and adds a ellipse to the collection.")
  10359.         ,restricted, hidden
  10360.     ]
  10361.     HRESULT  AddEllipseFixedRatio(
  10362.         [in] double X0, // X coordinate of ellipse's center point.
  10363.         [in] double Y0, // Y coordinate of ellipse's center point.
  10364.         [in] double Z0, // Z coordinate of ellipse's center point.
  10365.         [in] double X1, // X coordinate of radius in Y direction.
  10366.         [in] double Y1, // Y coordinate of radius in Y direction.
  10367.         [in] double Z1, // Z coordinate of radius in Y direction.
  10368.         [in] double XToYRatio, // Ratio of Rx to Ry.
  10369.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10370.         );
  10371.  
  10372.         /**
  10373.          * Creates and adds an arc to the collection.
  10374.          *
  10375.          * @see TCADAPI TCWArcCenterAndPoint function
  10376.          */
  10377.     [
  10378.          helpcontext(0x1006004F)
  10379.         ,helpstring("Creates and adds an arc to the collection.")
  10380.         ,restricted, hidden
  10381.     ]
  10382.     HRESULT  AddArcCenterAndPoint(
  10383.         [in] double X0, // X coordinate of arc's center point.
  10384.         [in] double Y0, // Y coordinate of arc's center point.
  10385.         [in] double Z0, // Z coordinate of arc's center point.
  10386.         [in] double X1, // X coordinate of arc's radius point.
  10387.         [in] double Y1, // Y coordinate of arc's radius point.
  10388.         [in] double Z1, // Z coordinate of arc's radius point.
  10389.         [in] double StartAngle, // Starting angle in radians.
  10390.         [in] double EndAngle, // Ending angle in radians.
  10391.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10392.         );
  10393.  
  10394.         /**
  10395.          * Creates and adds an arc to the collection.
  10396.          *
  10397.          * @see TCADAPI TCWArcDoublePoint function
  10398.          */
  10399.     [
  10400.          helpcontext(0x10060050)
  10401.         ,helpstring("Creates and adds an arc to the collection.")
  10402.         ,restricted, hidden
  10403.     ]
  10404.     HRESULT  AddArcDoublePoint(
  10405.         [in] double X0, // X coordinate of first endpoint.
  10406.         [in] double Y0, // Y coordinate of first endpoint.
  10407.         [in] double Z0, // Z coordinate of first endpoint.
  10408.         [in] double X1, // X coordinate of second endpoint.
  10409.         [in] double Y1, // Y coordinate of second endpont.
  10410.         [in] double Z1, // Z coordinate of second endpoint.
  10411.         [in] double StartAngle, // Starting angle in radians.
  10412.         [in] double EndAngle, // Ending angle in radians.
  10413.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10414.         );
  10415.  
  10416.         /**
  10417.          * Creates and adds an arc to the collection.
  10418.          *
  10419.          * @see TCADAPI TCWArcTriplePoint function
  10420.          */
  10421.     [
  10422.          helpcontext(0x10060051)
  10423.         ,helpstring("Creates and adds an arc to the collection.")
  10424.         ,restricted, hidden
  10425.     ]
  10426.     HRESULT  AddArcTriplePoint(
  10427.         [in] double X0, // X coordinate of starting point.
  10428.         [in] double Y0, // Y coordinate of starting point.
  10429.         [in] double Z0, // Z coordinate of starting point.
  10430.         [in] double X1, // X coordinate of point on perimeter.
  10431.         [in] double Y1, // Y coordinate of point on perimeter.
  10432.         [in] double Z1, // Z coordinate of point on perimeter.
  10433.         [in] double X2, // X coordinate of ending point.
  10434.         [in] double Y2, // Y coordinate of ending point.
  10435.         [in] double Z2, // Z coordinate of ending point.
  10436.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10437.         );
  10438.  
  10439.         /**
  10440.          * Creates and adds an elliptical arc to the collection.
  10441.          *
  10442.          * @see TCADAPI TCWArcElliptical function
  10443.          */
  10444.     [
  10445.          helpcontext(0x10060052)
  10446.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  10447.         ,restricted, hidden
  10448.     ]
  10449.     HRESULT  AddArcElliptical(
  10450.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  10451.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  10452.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  10453.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  10454.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  10455.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  10456.         [in] double StartAngle, // Starting angle in radians.
  10457.         [in] double EndAngle, // Ending angle in radians.
  10458.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10459.         );
  10460.  
  10461.         /**
  10462.          * Creates and adds an elliptical arc to the collection.
  10463.          *
  10464.          * @see TCADAPI TCWArcRotatedElliptical function
  10465.          */
  10466.     [
  10467.          helpcontext(0x10060053)
  10468.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  10469.         ,restricted, hidden
  10470.     ]
  10471.     HRESULT  AddArcRotatedElliptical(
  10472.         [in] double X0, // X coordinate of elliptical arc's center point.
  10473.         [in] double Y0, // Y coordinate of elliptical arc's center point.
  10474.         [in] double Z0, // Z coordinate of elliptical arc's center point.
  10475.         [in] double X1, // X coordinate of major axis radius point.
  10476.         [in] double Y1, // Y coordinate of major axis radius point.
  10477.         [in] double Z1, // Z coordinate of major axis radius point.
  10478.         [in] double X2, // X coordinate of minor axis radius point.
  10479.         [in] double Y2, // Y coordinate of minor axis radius point.
  10480.         [in] double Z2, // Z coordinate of minor axis radius point.
  10481.         [in] double StartAngle, // Starting angle in radians.
  10482.         [in] double EndAngle, // Ending angle in radians.
  10483.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10484.         );
  10485.  
  10486.         /**
  10487.          * Creates and adds an elliptical arc to the collection.
  10488.          *
  10489.          * @see TCADAPI TCWArcEllipticalFixedRatio function
  10490.          */
  10491.     [
  10492.          helpcontext(0x10060054)
  10493.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  10494.         ,restricted, hidden
  10495.     ]
  10496.     HRESULT  AddArcEllipticalFixedRatio(
  10497.         [in] double X0, // X coordinate of ellipse's center point.
  10498.         [in] double Y0, // Y coordinate of ellipse's center point.
  10499.         [in] double Z0, // Z coordinate of ellipse's center point.
  10500.         [in] double X1, // X coordinate of radius in Y direction.
  10501.         [in] double Y1, // Y coordinate of radius in Y direction.
  10502.         [in] double Z1, // Z coordinate of radius in Y direction.
  10503.         [in] double XToYRatio, // Ratio of Rx to Ry.
  10504.         [in] double StartAngle, // Starting angle in radians.
  10505.         [in] double EndAngle, // Ending angle in radians.
  10506.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10507.         );
  10508.  
  10509.         /**
  10510.          * Creates and adds a text Graphic object to the collection.
  10511.          *
  10512.          * @see TCADAPI TCWText function
  10513.          */
  10514.     [
  10515.          helpcontext(0x10060055)
  10516.         ,helpstring("Creates and adds a text Graphic object to the collection.")
  10517.         ,restricted, hidden
  10518.     ]
  10519.     HRESULT  AddText(
  10520.         [in] BSTR Text, // The text string.
  10521.         [in] double X0, // X coordinate of text's starting point.
  10522.         [in] double Y0, // Y coordinate of text's starting point.
  10523.         [in] double Z0, // Z coordinate of text's starting point.
  10524.         [in] double Height, // Height of text object.
  10525.         [in, optional] VARIANT* Angle, // Rotation angle of text in radians.
  10526.         [in, optional] VARIANT* Width, // Width of text object.
  10527.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  10528.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  10529.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10530.         );
  10531.  
  10532.         ///////////////////// Blocks Groups and Hatches \\\\\\\\\\\\\\\\\\\\\\\\\\
  10533.  
  10534.         /**
  10535.          * Creates a block in the Drawing object from the Graphic objects in the collection.
  10536.          *
  10537.          * @see TCADAPI TCWBlockCreate function
  10538.          */
  10539.     [
  10540.          helpcontext(0x10060056)
  10541.         ,helpstring("Creates a block in the Drawing object from the Graphic objects in the collection.")
  10542.         ,restricted, hidden
  10543.     ]
  10544.     HRESULT  CreateBlock(
  10545.         [in, optional] BSTR Name, // Name for the new block.
  10546.         [in, optional] VARIANT* XRef, // X coordinate of the block reference point.
  10547.         [in, optional] VARIANT* YRef, // Y coordinate of the block reference point.
  10548.         [in, optional] VARIANT* ZRef, // Z coordinate of the block reference point.
  10549.         [in, optional] VARIANT* CopyGraphics, // True to make the group using copies of the Graphic objects in the Graphics collection.
  10550.         [in, optional] VARIANT* InsertBlock, // True to insert the new block in the Drawing object.
  10551.         [in, out, optional] VARIANT* Insert, // The Insert Graphic object if InsertBlock was true
  10552.         [out, retval] Block** prop // The newly created block.
  10553.         );
  10554.  
  10555.         /**
  10556.          * Adds a block insertion to the collection.
  10557.          *
  10558.          * @see TCADAPI TCWBlockInsert function
  10559.          */
  10560.     [
  10561.          helpcontext(0x10060057)
  10562.         ,helpstring("Adds a block insertion to the collection.")
  10563.         ,restricted, hidden
  10564.     ]
  10565.     HRESULT  AddBlockInsertion(
  10566.         [in] VARIANT* Block, // BlockObj or index of the block.
  10567.         [in, optional] VARIANT* X0, // X coordinate of the block insertion point.
  10568.         [in, optional] VARIANT* Y0, // Y coordinate of the block insertion point.
  10569.         [in, optional] VARIANT* Z0, // Z coordinate of the block insertion point.
  10570.         [in, optional] VARIANT* XScale, // X scale factor.
  10571.         [in, optional] VARIANT* YScale, // Y scale factor.
  10572.         [in, optional] VARIANT* ZScale, // Z scale factor.
  10573.         [in, optional] VARIANT* Angle, // Rotation angle of block insertion in radians.
  10574.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10575.         );
  10576.  
  10577.         /**
  10578.          * Adds a group to the collection from the Graphic objects in the collection.
  10579.          *
  10580.          * @see TCADAPI TCWGroupCreate function
  10581.          */
  10582.     [
  10583.          helpcontext(0x10060058)
  10584.         ,helpstring("Adds a group to the collection from the Graphic objects in the collection.")
  10585.     ]
  10586.     HRESULT  AddGroup(
  10587.         [in]            VARIANT* Name, // Name for the new group.
  10588.         [in, optional]    VARIANT* Copy, // True to make the group using copies of the Graphic objects in the Graphics collection.
  10589.         [out, retval]    IGraphic** prop // The newly created Graphic object.
  10590.         );
  10591.  
  10592.         /**
  10593.          * Explodes groups and block insertions in the collection.
  10594.          *
  10595.          * @see TCADAPI TCWExplode function
  10596.          */
  10597.     [
  10598.          helpcontext(0x10060059)
  10599.         ,helpstring("Explodes groups and block insertions in the collection.")
  10600.         ,restricted, hidden
  10601.     ]
  10602.     HRESULT  Explode(
  10603.         [out, retval] GraphicSet** prop // The exploded Graphic objects.
  10604.         );
  10605.  
  10606.         /////////////////////////// Copy Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  10607.  
  10608.         /**
  10609.          * Copies the Graphic objects in the collection along a line.
  10610.          */
  10611.     [
  10612.          helpcontext(0x1006005A)
  10613.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  10614.         ,restricted, hidden
  10615.     ]
  10616.     HRESULT  LinearCopyAbsolute(
  10617.         [in] double X, // X coordinate to copy to.
  10618.         [in] double Y, // Y coordinate to copy to.
  10619.         [in] double Z, // Z coordinate to copy to.
  10620.         [in] long Copies, // Number of copies including the original.
  10621.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  10622.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10623.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10624.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10625.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10626.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10627.         );
  10628.  
  10629.         /**
  10630.          * Copies the Graphic objects in the collection along a line.
  10631.          */
  10632.     [
  10633.          helpcontext(0x1006005B)
  10634.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  10635.         ,restricted, hidden
  10636.     ]
  10637.     HRESULT  LinearCopyRelative(
  10638.         [in] double X, // X offset.
  10639.         [in] double Y, // Y offset.
  10640.         [in] double Z, // Z offset.
  10641.         [in] long Copies, // Number of copies including the original.
  10642.         [in, optional] VARIANT* Fit, // True if specified offset is for last copy.
  10643.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10644.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10645.         );
  10646.  
  10647.         /**
  10648.          * Copies the Graphic objects in the collection along a line.
  10649.          */
  10650.     [
  10651.          helpcontext(0x1006005C)
  10652.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  10653.         ,restricted, hidden
  10654.     ]
  10655.     HRESULT  LinearCopyAngle(
  10656.         [in] double Length, // Length of copy.
  10657.         [in] double Angle, // Angle of copy in radians.
  10658.         [in] long Copies, // Number of copies including the original.
  10659.         [in, optional] VARIANT* Fit, // True if specified length is for last copy.
  10660.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10661.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10662.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10663.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10664.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10665.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10666.         );
  10667.  
  10668.         /**
  10669.          * Copies the Graphic objects in the collection radially.
  10670.          * Always rotates in the currently active workplane?
  10671.          */
  10672.     [
  10673.          helpcontext(0x1006005D)
  10674.         ,helpstring("Copies the Graphic objects in the collection radially.")
  10675.         ,restricted, hidden
  10676.     ]
  10677.     HRESULT  RadialCopyAbsolute(
  10678.         [in] double X0, // X coordinate of center of arc.
  10679.         [in] double Y0, // Y coordinate of center of arc.
  10680.         [in] double Z0, // Z coordinate of center of arc.
  10681.         [in] double X1, // X coordinate of point on arc.
  10682.         [in] double Y1, // Y coordinate of point on arc.
  10683.         [in] double Z1, // Z coordinate of point on arc.
  10684.         [in] long Copies, // Number of copies including the original.
  10685.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  10686.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10687.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10688.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10689.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10690.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10691.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10692.         );
  10693.  
  10694.         /**
  10695.          * Copies the Graphic objects in the collection radially.
  10696.          * Always rotates in the currently active workplane?
  10697.          */
  10698.     [
  10699.          helpcontext(0x1006005E)
  10700.         ,helpstring("Copies the Graphic objects in the collection radially.")
  10701.         ,restricted, hidden
  10702.     ]
  10703.     HRESULT  RadialCopyAngle(
  10704.         [in] double X, // X coordinate of center of arc.
  10705.         [in] double Y, // Y coordinate of center of arc.
  10706.         [in] double Z, // Z coordinate of center of arc.
  10707.         [in] double Angle, // Angle between copies or for last copy.
  10708.         [in] double RotationAngle, // Angle to rotate each copy.
  10709.         [in] long Copies, // Number of copies including the original.
  10710.         [in, optional] VARIANT* Fit, // True if specified angle is for last copy.
  10711.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10712.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10713.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10714.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10715.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10716.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10717.         );
  10718.  
  10719.         /**
  10720.          * Copies the Graphic objects in a two dimensional array.
  10721.          * Always translates in the currently active workplane?
  10722.          */
  10723.     [
  10724.          helpcontext(0x1006005F)
  10725.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  10726.         ,restricted, hidden
  10727.     ]
  10728.     HRESULT  ArrayCopyAbsolute(
  10729.         [in] double X, // Coordinate defining row and column spacing.
  10730.         [in] double Y, // Coordinate defining row and column spacing.
  10731.         [in] double Z, // Coordinate defining row and column spacing.
  10732.         [in] long Rows, // Number of rows including the original.
  10733.         [in] long Columns, // Number of columns including the original.
  10734.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  10735.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10736.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10737.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10738.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10739.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10740.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10741.         );
  10742.  
  10743.         /**
  10744.          * Copies the Graphic objects in a two dimensional array.
  10745.          * Always translates in the currently active workplane?
  10746.          */
  10747.     [
  10748.          helpcontext(0x10060060)
  10749.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  10750.         ,restricted, hidden
  10751.     ]
  10752.     HRESULT  ArrayCopyRelative(
  10753.         [in] double U, // Column offset.
  10754.         [in] double V, // Row offset.
  10755.         [in] long Rows, // Number of rows including the original.
  10756.         [in] long Columns, // Number of columns including the original.
  10757.         [in, optional] VARIANT* Fit, // True if specified offsets are for last copy.
  10758.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10759.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10760.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10761.         );
  10762.  
  10763.         /**
  10764.          * Mirrors the Graphic objects in the collection about a line.
  10765.          */
  10766.     [
  10767.          helpcontext(0x10060061)
  10768.         ,helpstring("Mirrors the Graphic objects in the collection about a line.")
  10769.         ,restricted, hidden
  10770.     ]
  10771.     HRESULT  MirrorCopyLine(
  10772.         [in] double X0, // X coordinate of the first point on line.
  10773.         [in] double Y0, // Y coordinate of the first point on line.
  10774.         [in] double Z0, // Z coordinate of the first point on line.
  10775.         [in] double X1, // X coordinate of the second point on line.
  10776.         [in] double Y1, // Y coordinate of the second point on line.
  10777.         [in] double Z1, // Z coordinate of the second point on line.
  10778.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  10779.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10780.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10781.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  10782.         );
  10783.  
  10784.         /**
  10785.          * Mirrors the Graphic objects in the collection about an angle.
  10786.          */
  10787.     [
  10788.          helpcontext(0x10060062)
  10789.         ,helpstring("Mirrors the Graphic objects in the collection about an angle.")
  10790.         ,restricted, hidden
  10791.     ]
  10792.     HRESULT  MirrorCopyAngle(
  10793.         [in] double X, // X coordinate to mirror to.
  10794.         [in] double Y, // Y coordinate to mirror to.
  10795.         [in] double Z, // Z coordinate to mirror to.
  10796.         [in] double Angle, // Angle of mirror.
  10797.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  10798.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10799.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10800.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10801.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10802.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10803.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  10804.         );
  10805.  
  10806.         /**
  10807.          * Scales the Graphic objects in the collection.
  10808.          *
  10809.          * @see TCADAPI TCWSelectionScale function.
  10810.          */
  10811.     [
  10812.          helpcontext(0x10060063)
  10813.         ,helpstring("Scales the Graphic objects in the collection.")
  10814.         ,restricted, hidden
  10815.     ]
  10816.     HRESULT  Scale(
  10817.         [in] double XScale, // X scale factor.
  10818.         [in] double YScale, // Y scale factor.
  10819.         [in] double ZScale, // Z scale factor.
  10820.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10821.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10822.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10823.         [out, retval] IMatrix** prop // The matrix that was calculated.
  10824.         );
  10825.  
  10826.         /**
  10827.          * Rotates the Graphic objects in the collection.
  10828.          *
  10829.          * @see TCADAPI TCWSelectionRotate function.
  10830.          */
  10831.     [
  10832.          helpcontext(0x10060064)
  10833.         ,helpstring("Rotates the Graphic objects in the collection.")
  10834.         ,restricted, hidden
  10835.     ]
  10836.     HRESULT  RotateAxis(
  10837.         [in] double Angle, // Angle of rotation in radians.
  10838.         [in, optional] VARIANT* XAxis, // X coordinate of axis direction.
  10839.         [in, optional] VARIANT* YAxis, // Y coordinate of axis direction.
  10840.         [in, optional] VARIANT* ZAxis, // Z coordinate of axis direction.
  10841.         [in, optional] VARIANT* X, // X coordinate of the rotation center.
  10842.         [in, optional] VARIANT* Y, // Y coordinate of the rotation center.
  10843.         [in, optional] VARIANT* Z, // Z coordinate of the rotation center.
  10844.         [out, retval] IMatrix** prop // The matrix that was calculated.
  10845.         );
  10846.  
  10847.         /**
  10848.          * Rotates the Graphic objects in the collection.
  10849.          *
  10850.          * @see TCADAPI TCWSelectionRotate function.
  10851.          */
  10852.     [
  10853.          helpcontext(0x10060065)
  10854.         ,helpstring("Rotates the Graphic objects in the collection.")
  10855.         ,restricted, hidden
  10856.     ]
  10857.     HRESULT  RotateAbsolute(
  10858.         [in] VARIANT* XTo, // X coordinate of the point to rotate to.
  10859.         [in] VARIANT* YTo, // Y coordinate of the point to rotate to.
  10860.         [in] VARIANT* ZTo, // Z coordinate of the point to rotate to.
  10861.         [in] VARIANT* XFrom, // X coordinate of the point to rotate from.
  10862.         [in] VARIANT* YFrom, // Y coordinate of the point to rotate from.
  10863.         [in] VARIANT* ZFrom, // Z coordinate of the point to rotate from.
  10864.         [in, optional] VARIANT* XRef, // X coordinate of the rotation center.
  10865.         [in, optional] VARIANT* YRef, // Y coordinate of the rotation center.
  10866.         [in, optional] VARIANT* ZRef, // Z coordinate of the rotation center.
  10867.         [out, retval] IMatrix** prop // The matrix that was calculated.
  10868.         );
  10869.  
  10870.         /**
  10871.          * Moves the Graphic objects in the collection to a new location.
  10872.          *
  10873.          * @see TCADAPI TCWSelectionMove function.
  10874.          */
  10875.     [
  10876.          helpcontext(0x10060066)
  10877.         ,helpstring("Moves the Graphic objects in the collection to a new location.")
  10878.         ,restricted, hidden
  10879.     ]
  10880.     HRESULT  MoveAbsolute(
  10881.         [in] double X, // X coordinate to move to.
  10882.         [in] double Y, // Y coordinate to move to.
  10883.         [in] double Z, // Z coordinate to move to.
  10884.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10885.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10886.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10887.         [out, retval] IMatrix** prop // The matrix that was calculated.
  10888.         );
  10889.  
  10890.         /**
  10891.          * Moves the Graphic objects in the collection by a specified offset.
  10892.          *
  10893.          * @see TCADAPI TCWSelectionMove function.
  10894.          */
  10895.     [
  10896.          helpcontext(0x10060067)
  10897.         ,helpstring("Moves the Graphic objects in the collection by a specified offset.")
  10898.         ,restricted, hidden
  10899.     ]
  10900.     HRESULT  MoveRelative(
  10901.         [in] double X, // X offset.
  10902.         [in] double Y, // Y offset.
  10903.         [in] double Z, // Z offset.
  10904.         [out, retval] IMatrix** prop // The matrix that was calculated.
  10905.         );
  10906.  
  10907.         /**
  10908.          * Transforms the Graphic objects in the collection.
  10909.          */
  10910.     [
  10911.          helpcontext(0x10060068)
  10912.         ,helpstring("Transforms the Graphic object.")
  10913.         ,restricted, hidden
  10914.     ]
  10915.     HRESULT  Transform(
  10916.         [in] IMatrix* Transform // The matrix to perform transformation.
  10917.         );
  10918.  
  10919.         ////////////////////// Miscellaneous Edit Methods \\\\\\\\\\\\\\\\\\\\
  10920.  
  10921.         /**
  10922.          * Aligns the Graphic objects in the collection.
  10923.          *
  10924.          * @see TCADAPI TCWAlignXXX functions.
  10925.          */
  10926.     [
  10927.          helpcontext(0x10060069)
  10928.         ,helpstring("Aligns the Graphic objects in the collection.")
  10929.         ,restricted, hidden
  10930.     ]
  10931.     HRESULT  Align(
  10932.         [in] ImsiAlignType AlignType // Bottom, middle, etc.
  10933.         );
  10934.  
  10935.         /**
  10936.          * Aligns the Graphic objects in the collection along a line.
  10937.          */
  10938.     [
  10939.          helpcontext(0x1006006A)
  10940.         ,helpstring("Aligns the Graphic objects in the collection along a line.")
  10941.         ,restricted, hidden
  10942.     ]
  10943.     HRESULT  AlignAlongLine(
  10944.         [in] double X0, // X coordinate of the first point.
  10945.         [in] double Y0, // Y coordinate of the first point.
  10946.         [in] double Z0, // Z coordinate of the first point.
  10947.         [in] double X1, // X coordinate of the second point.
  10948.         [in] double Y1, // Y coordinate of the second point.
  10949.         [in] double Z1 // Z coordinate of the second point.
  10950.         );
  10951.  
  10952.         /**
  10953.          * Returns the index within the Graphics collection of the specified graphic handle.
  10954.          * Private.
  10955.          */
  10956.         [
  10957.              restricted
  10958.             ,helpcontext(0x1006006B)
  10959.             ,helpstring("Private.  Returns the index within the Graphics collection of the specified graphic handle.")
  10960.         ]
  10961.         HRESULT  _FindIndex(
  10962.             [in] long g, // The graphic handle.
  10963.             [out, retval] long* prop // The index.
  10964.             );
  10965.  
  10966.         /**
  10967.          * Returns the Graphic objects in the collection that match a query string.
  10968.          *
  10969.          * @see TCADAPI TCWSelectByQuery function.
  10970.          */
  10971.         [
  10972.              helpcontext(0x1006006C)
  10973.             ,helpstring("Returns the Graphic objects in the collection that match a query string.")
  10974.             ,hidden, restricted
  10975.         ]
  10976.         HRESULT  QuerySet(
  10977.             [in] BSTR Query, // The query string.
  10978.             [out, retval] GraphicSet** prop // The matching Graphic objects, as a GraphicSet__Object.
  10979.             );
  10980.  
  10981.         /**
  10982.          * Creates and adds a group of polylines or polygons to the collection.
  10983.          */
  10984.     [
  10985.          helpcontext(0x1006006D)
  10986.         ,helpstring("Creates and adds a group of polylines or polygons to the collection.")
  10987.         ,restricted, hidden
  10988.     ]
  10989.     HRESULT  AddPolys(
  10990.         [in] ImsiPolyType Type, // Type of poly(s) to be added.
  10991.         [in] VARIANT* Coords,   // Array of (X, Y, Z) poly coordinates.
  10992.         [out, retval] GraphicSet** NewPolys // The newly created Graphic objects.
  10993.         );
  10994.  
  10995.         /**
  10996.          * Generates a bounding polygon array to use in drag operations.
  10997.          *
  10998.          * @see View::DragOutline
  10999.          */
  11000.     [
  11001.          helpcontext(0x1006006E)
  11002.         ,helpstring("Generates a bounding polygon array to use in drag operations.")
  11003.         ,restricted, hidden
  11004.     ]
  11005.     HRESULT  CreateDragOutline(
  11006.         [in, out] VARIANT* Coords // Array of (X, Y, Z) polygon coordinates.
  11007.         );
  11008.  
  11009.         /**
  11010.          * Creates and adds a bunch of polylines to the collection.
  11011.          * The returned Graphics object contains a set with freshly created
  11012.          * polygons. The user can set properties, etc.
  11013.          */
  11014.     [
  11015.          helpcontext(0x1006006F)
  11016.         ,helpstring("Creates and adds a bunch of polylines to the collection.")
  11017.         ,restricted, hidden
  11018.     ]
  11019.     HRESULT  AddPolylines(
  11020.         [in] long NumberOfPolylines, // number of polylines to create
  11021.         [in] VARIANT* Coords,   // SafeArray of triplets of coordinates.
  11022.         [in] IMSI_BOOL closed, // whether each polyline is closed
  11023.         [out, retval] GraphicSet** NewPolys // The newly created set of Graphic objects.
  11024.         );
  11025.  
  11026.         /**
  11027.          * Finds the Graphic object in the collection with the given ID.
  11028.          */
  11029.     [
  11030.          helpcontext(0x10060070)
  11031.         ,helpstring("Finds the Graphic object in the collection with the given ID.")
  11032.     ]
  11033.     HRESULT  GraphicFromID(
  11034.         [in] long ID, // ID of Graphic object.
  11035.         [out, retval] IGraphic** prop // The Graphic object.
  11036.         );
  11037.  
  11038.         /**
  11039.          * Creates and adds an attribute definition Graphic object to the collection.  
  11040.          */
  11041.     [
  11042.          helpcontext(0x10060071)
  11043.         ,helpstring("Creates and adds an attribute definition Graphic object to the collection.")
  11044.         ,restricted, hidden
  11045.     ]
  11046.     HRESULT  AddAttributeDefinition(
  11047.         [in] BSTR Tag, // The text string for the attribute definition tag.
  11048.         [in] double X0, // X coordinate of attdef's starting point.
  11049.         [in] double Y0, // Y coordinate of attdef's starting point.
  11050.         [in] double Z0, // Z coordinate of attdef's starting point.
  11051.         [in] double Height, // Height of attdef object.
  11052.         [in, optional] VARIANT* Angle, // Rotation angle of attdef in radians.
  11053.         [in, optional] VARIANT* Width, // Width of attdef object.
  11054.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  11055.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  11056.         [in, optional] VARIANT* AttFlags, // ImsiAttFlag values.
  11057.         [in, optional] VARIANT* Default, // Default value of attribute.
  11058.         [in, optional] VARIANT* Prompt, // Prompt for attribute.
  11059.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11060.         );
  11061.  
  11062.         /////////////////////////////////////////////////////////////////////////////
  11063.         // Selection methods
  11064.  
  11065.         /**
  11066.          * Prints the object.
  11067.          *
  11068.          * @see TCADAPI TCWDrawingPrint function.
  11069.          */
  11070.         [
  11071.              helpcontext(0x10060072)
  11072.             ,helpstring("Prints the object.")
  11073.             ,restricted, hidden
  11074.         ]
  11075.         HRESULT  PrintOut(
  11076.             [in, optional] VARIANT* From, // Starting page number.
  11077.             [in, optional] VARIANT* To, // Ending page number.
  11078.             [in, optional] VARIANT* Copies, // Number of copies to print.
  11079.             [in, optional] VARIANT* ActivePrinter, // Name of printer to use.
  11080.             [in, optional] VARIANT* OutputFileName, // File name to print to.
  11081.             [in, optional] VARIANT* FitToPage, // True to fit on one page.
  11082.             [in, optional] VARIANT* Collate // True to collate copies.
  11083.             );
  11084.  
  11085.         /**
  11086.          * Saves the contents of the Selection object.
  11087.          *
  11088.          * @see TCADAPI TCWDrawingSaveAs function.
  11089.          */
  11090.     [
  11091.          helpcontext(0x10060073)
  11092.         ,helpstring("Saves the contents of the Selection object.")
  11093.     ]
  11094.     HRESULT  SaveAs(
  11095.             [in] BSTR Filename, // The file name to save to.
  11096.             [in, optional] VARIANT* Filter // Name or index of preferred filter.
  11097.             );
  11098.  
  11099.         /**
  11100.          * Adds a Region to the collection from the Graphic objects in the collection.
  11101.          *
  11102.          */
  11103.         [
  11104.              helpcontext(0x10060073)
  11105.             ,helpstring("Adds a Region to the collection from the Graphic objects in the collection.")
  11106.         ]
  11107.         HRESULT  AddRegion(
  11108.              [in, optional]    VARIANT*    pvarName
  11109.             ,[in, optional]    VARIANT*    pvarCopy
  11110.             ,[out, retval]    IGraphic** prop // The newly GraphicObject.
  11111.             );
  11112.     };
  11113.  
  11114.  
  11115.     /**
  11116.      * A named set of references to Graphic objects in a Drawing object.
  11117.      */
  11118.     [
  11119.          object
  11120.         ,uuid(6A481134-E531-11CF-A115-00A024158DAF)
  11121.         ,oleautomation
  11122.         ,dual
  11123.         ,helpcontext(0x10070000)
  11124.         ,helpstring("A named set of references to Graphic objects in a Drawing object.")
  11125.     ]
  11126.     interface GraphicSet : IDispatch
  11127.     {
  11128.  
  11129.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  11130.  
  11131.         /**
  11132.          * Returns an Application object that represents the owner of the specified object.
  11133.          */
  11134.         [
  11135.              propget
  11136.             ,helpcontext(0x10070001)
  11137.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  11138.         ]
  11139.         HRESULT  Application(
  11140.             [out, retval] IApplication** prop // The Application object.
  11141.             );
  11142.  
  11143.         /**
  11144.          * Returns the number of items in the collection.
  11145.          */
  11146.         [
  11147.              propget
  11148.             ,helpcontext(0x10070002)
  11149.             ,helpstring("Returns the number of items in the collection.")
  11150.         ]
  11151.         HRESULT  Count(
  11152.             [out, retval] long* prop // The number of items.
  11153.             );
  11154.  
  11155.         /**
  11156.          * Returns the Drawing object that owns the object.
  11157.          */
  11158.         [
  11159.              propget
  11160.             ,helpcontext(0x10070003)
  11161.             ,helpstring("Returns the Drawing object that owns the object.")
  11162.         ]
  11163.         HRESULT  Drawing(
  11164.             [out, retval] IDrawing** prop // The Drawing object.
  11165.             );
  11166.  
  11167.         /**
  11168.          * Returns part of a collection.
  11169.          */
  11170.         [
  11171.              propget
  11172.             ,id(DISPID_VALUE)
  11173.             ,helpcontext(0x10070004)
  11174.             ,helpstring("Returns part of a collection.")
  11175.         ]
  11176.         HRESULT  Item(
  11177.             [in] VARIANT* Index, // Index of item to return.
  11178.             [out, retval] IGraphic** prop // The item.
  11179.             );
  11180.  
  11181.         /**
  11182.          * Returns the parent object for the specified object.
  11183.          */
  11184.         [
  11185.              propget
  11186.             ,helpcontext(0x10070005)
  11187.             ,helpstring("Returns the parent object for the specified object.")
  11188.         ]
  11189.         HRESULT  Parent(
  11190.             [out, retval] IDispatch** prop // The parent object.
  11191.             );
  11192.  
  11193.         /**
  11194.          * Creates an enumeration object.
  11195.          */
  11196.         [
  11197.              propget
  11198.             ,restricted
  11199.             ,id(DISPID_NEWENUM)
  11200.             ,helpcontext(0x10070006)
  11201.             ,helpstring("Private.  Creates an enumeration object.")
  11202.         ]
  11203.         HRESULT  _NewEnum(
  11204.             [out, retval] IUnknown** prop // The enumeration object.
  11205.             );
  11206.  
  11207.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  11208.  
  11209. #ifndef METHOD_OVERFLOW_BUG
  11210.  
  11211.         /**
  11212.          * Applies a Style object to the contents of the collection.
  11213.          */
  11214.         [
  11215.              helpcontext(0x10070007)
  11216.             ,helpstring("Applies a Style object to the contents of the collection.")
  11217.             ,restricted, hidden
  11218.         ]
  11219.         HRESULT  ApplyStyle(
  11220.             [in] Style* StyleToApply // The Style object to apply.
  11221.             );
  11222.  
  11223.         /**
  11224.          * Checks the spelling of all the text Graphic object's in the collection.
  11225.          */
  11226.         [
  11227.              helpcontext(0x10070008)
  11228.             ,helpstring("Checks the spelling of all the text Graphic object's in the collection.")
  11229.             ,restricted, hidden
  11230.         ]
  11231.         HRESULT  CheckSpelling(
  11232.         [in, optional] VARIANT* CustomDictionary, // The name of a custom dictionary.
  11233.         [in, optional] VARIANT* IgnoreUppercase, // True to ignore case.
  11234.         [in, optional] VARIANT* AlwaysSuggest, // True to suggest corrections.
  11235.         [in, optional] VARIANT* CustomDictionary2, // The name of a custom dictionary.
  11236.         [in, optional] VARIANT* CustomDictionary3, // The name of a custom dictionary.
  11237.         [in, optional] VARIANT* CustomDictionary4, // The name of a custom dictionary.
  11238.         [in, optional] VARIANT* CustomDictionary5, // The name of a custom dictionary.
  11239.         [in, optional] VARIANT* CustomDictionary6, // The name of a custom dictionary.
  11240.         [in, optional] VARIANT* CustomDictionary7, // The name of a custom dictionary.
  11241.         [in, optional] VARIANT* CustomDictionary8, // The name of a custom dictionary.
  11242.         [in, optional] VARIANT* CustomDictionary9, // The name of a custom dictionary.
  11243.         [in, optional] VARIANT* CustomDictionary10 // The name of a custom dictionary.
  11244.         );
  11245.  
  11246.         /**
  11247.          * Adds a hatch pattern to the collection from the Graphic objects in the collection.
  11248.          *
  11249.          * @see TCADAPI TCWCreateHatch function
  11250.          */
  11251.     [
  11252.          helpcontext(0x10070009)
  11253.         ,helpstring("Adds a hatch pattern to the collection from the Graphic objects in the collection.")
  11254.         ,restricted, hidden
  11255.     ]
  11256.     HRESULT  AddHatch(
  11257.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11258.         );
  11259.  
  11260.         /**
  11261.          * Creates a Style object based on the contents of the collection.
  11262.          */
  11263.         [
  11264.              helpcontext(0x1007000A)
  11265.             ,helpstring("Creates a Style object based on the contents of the collection.")
  11266.             ,restricted, hidden
  11267.         ]
  11268.         HRESULT  CreateStyle(
  11269.             [in] Style* BasedOn, // The style to base the new Style object on.
  11270.             [out, retval] Style** prop // The newly created Style object.
  11271.             );
  11272.  
  11273.         /**
  11274.          * Creates and adds an OLE object to the collection.
  11275.          */
  11276.         [
  11277.              helpcontext(0x1007000B)
  11278.             ,helpstring("Creates and adds an OLE object to the collection.")
  11279.             ,restricted, hidden
  11280.         ]
  11281.         HRESULT  AddObject(
  11282.             [in, optional] VARIANT* ClassType, // Name of data format to paste.
  11283.             [in, optional] VARIANT* FileName, // Name of file to create object or link from.
  11284.             [in, optional] VARIANT* LinkToFile, // True if object is a link.
  11285.             [in, optional] VARIANT* DisplayAsIcon, // True to display as icon.
  11286.             [in, optional] VARIANT* IconFileName, // File containing icon.
  11287.             [in, optional] VARIANT* IconIndex, // Index of icon to use if displaying as icon.
  11288.             [in, optional] VARIANT* IconLabel, // Label to display if displaying as icon.
  11289.             [in, optional] VARIANT* X, // X coordinate of center of object.
  11290.             [in, optional] VARIANT* Y, // Y coordinate of center of object.
  11291.             [in, optional] VARIANT* Z, // Z coordinate of center of object.
  11292.             [in, optional] VARIANT* Width, // Width of object.
  11293.             [in, optional] VARIANT* Height, // Height of object.
  11294.             [in, optional] VARIANT* Anchor, // TODO: What's this for?
  11295.             [out, retval] IGraphic** prop // The newly created Graphic object.
  11296.             );
  11297.  
  11298.         /**
  11299.          * Creates and adds a single line segment to the collection.
  11300.          */
  11301.     [
  11302.          helpcontext(0x1007000C)
  11303.         ,helpstring("Creates and adds a single line segment to the collection.")
  11304.         ,restricted, hidden
  11305.     ]
  11306.     HRESULT  AddLineTanArcPoint(
  11307.         [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  11308.         [in] double X0, // X coordinate on arc for line endpoint.
  11309.         [in] double Y0, // Y coordinate on arc for line endpoint.
  11310.         [in] double Z0, // Z coordinate on arc for line endpoint.
  11311.         [in] double length, // length of tangent line.
  11312.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11313.         );
  11314.  
  11315.         /**
  11316.          * Creates and adds a single line segment to the collection.
  11317.          */
  11318.     [
  11319.          helpcontext(0x1007000D)
  11320.         ,helpstring("Creates and adds a single line segment to the collection.")
  11321.         ,restricted, hidden
  11322.     ]
  11323.     HRESULT  AddLineTanToArc(
  11324.         [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  11325.         [in] double X0, // X coordinate on arc for the line's first endpoint.
  11326.         [in] double Y0, // Y coordinate on arc for the line's first endpoint.
  11327.         [in] double Z0, // Z coordinate on arc for the line's first endpoint.
  11328.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11329.         );
  11330.  
  11331.         /**
  11332.          * Creates and adds a single line segment to the collection.
  11333.          */
  11334.     [
  11335.          helpcontext(0x1007000E)
  11336.         ,helpstring("Creates and adds a single line segment to the collection.")
  11337.             ,restricted, hidden
  11338.     ]
  11339.     HRESULT  AddLineTanFromArc(
  11340.         [in] IGraphic* TangentFrom, // Arc to draw line tangent from.
  11341.         [in] double X0, // X coordinate on arc for the line's second endpoint.
  11342.         [in] double Y0, // Y coordinate on arc for the line's second endpoint.
  11343.         [in] double Z0, // Z coordinate on arc for the line's second endpoint.
  11344.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11345.         );
  11346.  
  11347.         /**
  11348.          * Creates and adds a single line segment to the collection.
  11349.          */
  11350.     [
  11351.          helpcontext(0x1007000F)
  11352.         ,helpstring("Creates and adds a single line segment to the collection.")
  11353.         ,restricted, hidden
  11354.     ]
  11355.     HRESULT  AddLineTan2Arcs(
  11356.         [in] IGraphic* Arc1, // First arc.
  11357.         [in] IGraphic* Arc2, // Second arc.
  11358.         [in] IMSI_BOOL CounterClockwise, // True if tangent direction is counterclockwise.
  11359.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11360.         );
  11361.  
  11362.         /**
  11363.          * Creates and adds a multi segment leader (callout) line to the collection.
  11364.          * The returned Graphic object contains only a beginning vertex.  The user must
  11365.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  11366.          * and a Graphic.Finish call to complete the Graphic object.
  11367.          */
  11368.     [
  11369.          helpcontext(0x10070010)
  11370.         ,helpstring("Creates and adds a multi segment leader (callout) line to the collection.")
  11371.         ,restricted, hidden
  11372.     ]
  11373.     HRESULT  AddDimensionLeader(
  11374.         [in] double X0, // X coordinate of the first endpoint.
  11375.         [in] double Y0, // Y coordinate of the first endpoint.
  11376.         [in] double Z0, // Z coordinate of the first endpoint.
  11377.         [in, optional] BSTR Text, // The text for the leader.
  11378.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11379.         );
  11380.  
  11381.         /**
  11382.          * Creates and adds a baseline dimension to the collection.
  11383.          * The returned Graphic object contains only a beginning vertex.  The user must
  11384.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  11385.          * and a Graphic.Finish call to complete the Graphic object.
  11386.          */
  11387.     [
  11388.          helpcontext(0x10070011)
  11389.         ,helpstring("Creates and adds a WHATEVER to the collection.")
  11390.         ,restricted, hidden
  11391.     ]
  11392.     HRESULT  AddDimensionBaseline(
  11393.         [in] IGraphic* AddTo, // dimension line to add baseline dimension to.
  11394.         [in] double X0, // X coordinate of second extension line.
  11395.         [in] double Y0, // Y coordinate of second extension line.
  11396.         [in] double Z0, // Z coordinate of second extension line.
  11397.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11398.         );
  11399.  
  11400.         /**
  11401.          * Creates and adds a continuous dimension to the collection.
  11402.          * The returned Graphic object contains only a beginning vertex.  The user must
  11403.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  11404.          * and a Graphic.Finish call to complete the Graphic object.
  11405.          */
  11406.     [
  11407.          helpcontext(0x10070012)
  11408.         ,helpstring("Creates and adds a continuous dimension to the collection.")
  11409.         ,restricted, hidden
  11410.     ]
  11411.     HRESULT  AddDimensionContinuous(
  11412.         [in] IGraphic* AddTo, // dimension line to add continuous dimension to.
  11413.         [in] double X0, // X coordinate of second extension line.
  11414.         [in] double Y0, // Y coordinate of second extension line.
  11415.         [in] double Z0, // Z coordinate of second extension line.
  11416.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11417.         );
  11418.  
  11419.         /**
  11420.          * Creates and adds a single segment double line to the collection.
  11421.          *
  11422.          * @see TCADAPI TCWDoubleLineSingle function
  11423.          */
  11424.     [
  11425.          helpcontext(0x10070013)
  11426.         ,helpstring("Creates and adds a single segment double line to the collection.")
  11427.         ,restricted, hidden
  11428.     ]
  11429.     HRESULT  AddDoubleLineSingle(
  11430.         [in] double X0, // X coordinate of the first point.
  11431.         [in] double Y0, // Y coordinate of the first point.
  11432.         [in] double Z0, // Z coordinate of the first point.
  11433.         [in] double X1, // X coordinate of the second point.
  11434.         [in] double Y1, // Y coordinate of the second point.
  11435.         [in] double Z1, // Z coordinate of the second point.
  11436.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11437.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11438.         );
  11439.  
  11440.         /**
  11441.          * Creates and adds a double regular polygon to the collection.
  11442.          *
  11443.          * @see TCADAPI TCWDoubleLinePolygon function
  11444.          */
  11445.     [
  11446.          helpcontext(0x10070014)
  11447.         ,helpstring("Creates and adds a double regular polygon to the collection.")
  11448.         ,restricted, hidden
  11449.     ]
  11450.     HRESULT  AddDoubleLinePolygon(
  11451.         [in] double X0, // X coordinate of the center point.
  11452.         [in] double Y0, // Y coordinate of the center point.
  11453.         [in] double Z0, // Z coordinate of the center point.
  11454.         [in] double X1, // X coordinate of the corner point.
  11455.         [in] double Y1, // Y coordinate of the corner point.
  11456.         [in] double Z1, // Z coordinate of the corner point.
  11457.         [in] long Sides, // Number of sides.
  11458.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11459.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11460.         );
  11461.  
  11462.         /**
  11463.          * Creates and adds a double rectangle to the collection.
  11464.          *
  11465.          * @see TCADAPI TCWDoubleLineRectangle function
  11466.          */
  11467.     [
  11468.          helpcontext(0x10070015)
  11469.         ,helpstring("Creates and adds a double rectangle to the collection.")
  11470.         ,restricted, hidden
  11471.     ]
  11472.     HRESULT  AddDoubleLineRectangle(
  11473.         [in] double X0, // X coordinate of the upper left corner.
  11474.         [in] double Y0, // Y coordinate of the upper left corner.
  11475.         [in] double Z0, // Z coordinate of the upper left corner.
  11476.         [in] double X1, // X coordinate of the lower right corner.
  11477.         [in] double Y1, // Y coorindate of the lower right corner.
  11478.         [in] double Z1, // Z coorindate of the lower right corner.
  11479.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11480.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11481.         );
  11482.  
  11483.         /**
  11484.          * Creates and adds a double rotated rectangle to the collection.
  11485.          *
  11486.          * @see TCADAPI TCWDoubleLineRotatedRectangle function
  11487.          */
  11488.     [
  11489.          helpcontext(0x10070016)
  11490.         ,helpstring("Creates and adds a double rotated rectangle to the collection.")
  11491.         ,restricted, hidden
  11492.     ]
  11493.     HRESULT  AddDoubleLineRotatedRectangle(
  11494.         [in] double X0, // X coordinate of the upper left corner.
  11495.         [in] double Y0, // Y coordinate of the upper left corner.
  11496.         [in] double Z0, // Z coordinate of the upper left corner.
  11497.         [in] double X1, // X coordinate of the lower right corner.
  11498.         [in] double Y1, // Y coorindate of the lower right corner.
  11499.         [in] double Z1, // Z coorindate of the lower right corner.
  11500.         [in] double Angle, // Angle of rotation in radians.
  11501.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11502.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11503.         );
  11504.  
  11505.         /**
  11506.          * Creates and adds a double line to the collection.
  11507.          *
  11508.          * @see TCADAPI TCWDoubleLinePerpendicular function
  11509.          */
  11510.     [
  11511.          helpcontext(0x10070017)
  11512.         ,helpstring("Creates and adds a double line to the collection.")
  11513.         ,restricted, hidden
  11514.     ]
  11515.     HRESULT  AddDoubleLinePerpendicular(
  11516.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  11517.         [in] double X0, // X coordinate of the point on the existing line.
  11518.         [in] double Y0, // Y coordinate of the point on the existing line.
  11519.         [in] double Z0, // Z coordinate of the point on the existing line.
  11520.         [in] double X1, // X coordinate of the second point on the new line.
  11521.         [in] double Y1, // Y coordinate of the second point on the new line.
  11522.         [in] double Z1, // Z coordinate of the second point on the new line.
  11523.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11524.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11525.         );
  11526.  
  11527.         /**
  11528.          * Creates and adds a multiple segment double line to the collection.
  11529.          * The returned Graphic object contains only a beginning vertex.  The user must
  11530.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  11531.          * and a Graphic.Finish call to complete the Graphic object.
  11532.          *
  11533.          * @see TCADAPI TCWDoubleLineMultiline function
  11534.          */
  11535.     [
  11536.          helpcontext(0x10070018)
  11537.         ,helpstring("Creates and adds a multiple segment double line to the collection.")
  11538.         ,restricted, hidden
  11539.     ]
  11540.     HRESULT  AddDoubleLineMultiline(
  11541.         [in] double X0, // X coordinate of first endpoint.
  11542.         [in] double Y0, // Y coordinate of first endpoint.
  11543.         [in] double Z0, // Z coordinate of first endpoint.
  11544.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11545.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11546.         );
  11547.  
  11548.         /**
  11549.          * Creates and adds a double irregular polygon to the collection.
  11550.          * The returned Graphic object contains only a beginning vertex.  The user must
  11551.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  11552.          * and a Graphic.Close call to complete the Graphic object.
  11553.          *
  11554.          * @see TCADAPI TCWDoubleLineIrregularPolygon function
  11555.          */
  11556.     [
  11557.          helpcontext(0x10070019)
  11558.         ,helpstring("Creates and adds a double irregular polygon to the collection.")
  11559.         ,restricted, hidden
  11560.     ]
  11561.     HRESULT  AddDoubleLineIrregularPolygon(
  11562.         [in] double X0, // X coordinate of first endpoint.
  11563.         [in] double Y0, // Y coordinate of first endpoint.
  11564.         [in] double Z0, // Z coordinate of first endpoint.
  11565.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11566.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11567.         );
  11568.  
  11569.         /**
  11570.          * Creates and adds a double line to the collection.
  11571.          *
  11572.          * @see TCADAPI TCWDoubleLineParallel function
  11573.          */
  11574.     [
  11575.          helpcontext(0x1007001A)
  11576.         ,helpstring("Creates and adds a double line to the collection.")
  11577.         ,restricted, hidden
  11578.     ]
  11579.     HRESULT  AddDoubleLineParallel(
  11580.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  11581.         [in] double X0, // X coordinate of the new line.
  11582.         [in] double Y0, // Y coordinate of the new line.
  11583.         [in] double Z0, // Z coordinate of the new line.
  11584.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11585.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11586.         );
  11587.  
  11588.         /**
  11589.          * Creates and adds a circle to the collection.
  11590.          */
  11591.     [
  11592.          helpcontext(0x1007001B)
  11593.         ,helpstring("Creates and adds a circle to the collection.")
  11594.         ,restricted, hidden
  11595.     ]
  11596.     HRESULT  AddCircleTanToArc(
  11597.         [in] IGraphic* TangentTo, // Arc or circle to draw new circle tangent to.
  11598.         [in] double X0, // X coordinate of the new circle's center point.
  11599.         [in] double Y0, // Y coordinate of the new circle's center point.
  11600.         [in] double Z0, // Z coordinate of the new circle's center point.
  11601.         [in] double X1, // X coordinate of the new circle's radius point.
  11602.         [in] double Y1, // Y coordinate of the new circle's radius point.
  11603.         [in] double Z1, // Z coordinate of the new circle's radius point.
  11604.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11605.         );
  11606.  
  11607.         /**
  11608.          * Creates and adds a circle to the collection.
  11609.          */
  11610.     [
  11611.          helpcontext(0x1007001C)
  11612.         ,helpstring("Creates and adds a circle to the collection.")
  11613.         ,restricted, hidden
  11614.     ]
  11615.     HRESULT  AddCircleTanToLine(
  11616.         [in] IGraphic* TangentTo, // Line to draw new circle tangent to.
  11617.         [in] double X0, // X coordinate of the new circle's center point.
  11618.         [in] double Y0, // Y coordinate of the new circle's center point.
  11619.         [in] double Z0, // Z coordinate of the new circle's center point.
  11620.         [in] double X1, // X coordinate of the new circle's radius point.
  11621.         [in] double Y1, // Y coordinate of the new circle's radius point.
  11622.         [in] double Z1, // Z coordinate of the new circle's radius point.
  11623.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11624.         );
  11625.  
  11626.         /**
  11627.          * Creates and adds a circle to the collection.
  11628.          */
  11629.     [
  11630.          helpcontext(0x1007001D)
  11631.         ,helpstring("Creates and adds a circle to the collection.")
  11632.         ,restricted, hidden
  11633.     ]
  11634.     HRESULT  AddCircleTan3Arcs(
  11635.         [in] IGraphic* Arc1, // First arc or circle.
  11636.         [in] IGraphic* Arc2, // Second arc or circle.
  11637.         [in] IGraphic* Arc3, // Third arc or circle.
  11638.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11639.         );
  11640.  
  11641.         /**
  11642.          * Creates and adds an arc to the collection.
  11643.          */
  11644.     [
  11645.          helpcontext(0x1007001E)
  11646.         ,helpstring("Creates and adds an arc to the collection.")
  11647.         ,restricted, hidden
  11648.     ]
  11649.     HRESULT  AddArcTanToArc(
  11650.         [in] IGraphic* TangentTo, // Arc or circle to draw arc tangent to.
  11651.         [in] double X0, // X coordinate of new arc's radius point.
  11652.         [in] double Y0, // Y coordinate of new arc's radius point.
  11653.         [in] double Z0, // Z coordinate of new arc's radius ponit.
  11654.         [in] double X1, // X coordinate of point on existing arc.
  11655.         [in] double Y1, // Y coordinate of point on existing arc.
  11656.         [in] double Z1, // Z coordinate of ponit on existing arc.
  11657.         [in] double StartAngle, // Starting angle in radians.
  11658.         [in] double EndAngle, // Ending angle in radians.
  11659.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11660.         );
  11661.  
  11662.         /**
  11663.          * Creates and adds an arc to the collection.
  11664.          */
  11665.     [
  11666.          helpcontext(0x1007001F)
  11667.         ,helpstring("Creates and adds an arc to the collection.")
  11668.         ,restricted, hidden
  11669.     ]
  11670.     HRESULT  AddArcTanToLine(
  11671.         [in] IGraphic* TangentTo, // Line to draw arc tangent to.
  11672.         [in] double X0, // X coordinate of new arc's radius point.
  11673.         [in] double Y0, // Y coordinate of new arc's radius point.
  11674.         [in] double Z0, // Z coordinate of new arc's radius ponit.
  11675.         [in] double X1, // X coordinate of point on existing line.
  11676.         [in] double Y1, // Y coordinate of point on existing line.
  11677.         [in] double Z1, // Z coordinate of ponit on existing line.
  11678.         [in] double StartAngle, // Starting angle in radians.
  11679.         [in] double EndAngle, // Ending angle in radians.
  11680.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11681.         );
  11682.  
  11683.         /**
  11684.          * Creates and adds an arc to the collection.
  11685.          */
  11686.     [
  11687.          helpcontext(0x10070020)
  11688.         ,helpstring("Creates and adds an arc to the collection.")
  11689.         ,restricted, hidden
  11690.     ]
  11691.     HRESULT  AddArcTanTo3Arcs(
  11692.         [in] IGraphic* Arc1, // First arc or circle.
  11693.         [in] IGraphic* Arc2, // Second arc or circle.
  11694.         [in] IGraphic* Arc3, // Third arc or circle.
  11695.         [in] double StartAngle, // Starting angle in radians.
  11696.         [in] double EndAngle, // Ending angle in radians.
  11697.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11698.         );
  11699.  
  11700.         /**
  11701.          * Creates and adds a horizontal dimension to the collection.
  11702.          *
  11703.          * @see TCADAPI TCWDimensionHorizontal, TCWDimensionHorizontalEntity functions
  11704.          */
  11705.     [
  11706.          helpcontext(0x10070021)
  11707.         ,helpstring("Creates and adds a horizontal dimension to the collection.")
  11708.         ,restricted, hidden
  11709.     ]
  11710.     HRESULT  AddDimensionHorizontal(
  11711.         [in] double X0, // X coordinate of first extension line.
  11712.         [in] double Y0, // Y coordinate of first extension line.
  11713.         [in] double Z0, // Z coordinate of first extension line.
  11714.         [in] double X1, // X coordinate of second extension line.
  11715.         [in] double Y1, // Y coordinate of second extension line.
  11716.         [in] double Z1, // Z coordinate of second extension line.
  11717.         [in] double X2, // X coordinate of dimension.
  11718.         [in] double Y2, // Y coordinate of dimension.
  11719.         [in] double Z2, // Z coordinate of dimension.
  11720.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11721.         );
  11722.  
  11723.         /**
  11724.          * Creates and adds a vertical dimension to the collection.
  11725.          *
  11726.          * @see TCADAPI TCWDimensionVertical, TCWDimensionVerticalEntity functions
  11727.          */
  11728.     [
  11729.          helpcontext(0x10070022)
  11730.         ,helpstring("Creates and adds a vertical dimension to the collection.")
  11731.         ,restricted, hidden
  11732.     ]
  11733.     HRESULT  AddDimensionVertical(
  11734.         [in] double X0, // X coordinate of first extension line.
  11735.         [in] double Y0, // Y coordinate of first extension line.
  11736.         [in] double Z0, // Z coordinate of first extension line.
  11737.         [in] double X1, // X coordinate of second extension line.
  11738.         [in] double Y1, // Y coordinate of second extension line.
  11739.         [in] double Z1, // Z coordinate of second extension line.
  11740.         [in] double X2, // X coordinate of dimension.
  11741.         [in] double Y2, // Y coordinate of dimension.
  11742.         [in] double Z2, // Z coordinate of dimension.
  11743.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11744.         );
  11745.  
  11746.         /**
  11747.          * Creates and adds a parallel dimension to the collection.
  11748.          *
  11749.          * @see TCADAPI TCWDimensionParallel, TCWDimensionParallelEntity functions
  11750.          */
  11751.     [
  11752.          helpcontext(0x10070023)
  11753.         ,helpstring("Creates and adds a parallel dimension to the collection.")
  11754.         ,restricted, hidden
  11755.     ]
  11756.     HRESULT  AddDimensionParallel(
  11757.         [in] double X0, // X coordinate of first extension line.
  11758.         [in] double Y0, // Y coordinate of first extension line.
  11759.         [in] double Z0, // Z coordinate of first extension line.
  11760.         [in] double X1, // X coordinate of second extension line.
  11761.         [in] double Y1, // Y coordinate of second extension line.
  11762.         [in] double Z1, // Z coordinate of second extension line.
  11763.         [in] double X2, // X coordinate of dimension.
  11764.         [in] double Y2, // Y coordinate of dimension.
  11765.         [in] double Z2, // Z coordinate of dimension.
  11766.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11767.         );
  11768.  
  11769.         /**
  11770.          * Creates and adds a rotated dimension to the collection.
  11771.          */
  11772.     [
  11773.          helpcontext(0x10070024)
  11774.         ,helpstring("Creates and adds a rotated dimension to the collection.")
  11775.         ,restricted, hidden
  11776.     ]
  11777.     HRESULT  AddDimensionRotated(
  11778.         [in] double X0, // X coordinate of first endpoint defining angle and direction.
  11779.         [in] double Y0, // Y coordinate of first endpoint defining angle and direction.
  11780.         [in] double Z0, // Z coordinate of first endpoint defining angle and direction.
  11781.         [in] double X1, // X coordinate of second endpoint defining angle and direction.
  11782.         [in] double Y1, // Y coordinate of second endpoint defining angle and direction.
  11783.         [in] double Z1, // Z coordinate of second endpoint defining angle and direction.
  11784.         [in] double X2, // X coordinate of first extension line.
  11785.         [in] double Y2, // Y coordinate of first extension line.
  11786.         [in] double Z2, // Z coordinate of first extension line.
  11787.         [in] double X3, // X coordinate of second extension line.
  11788.         [in] double Y3, // Y coordinate of second extension line.
  11789.         [in] double Z3, // Z coordinate of second extension line.
  11790.         [in] double X4, // X coordinate of dimension.
  11791.         [in] double Y4, // Y coordinate of dimension.
  11792.         [in] double Z4, // Z coordinate of dimension.
  11793.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11794.         );
  11795.  
  11796.         /**
  11797.          * Creates and adds a datum dimension to the collection.
  11798.          */
  11799.     [
  11800.          helpcontext(0x10070025)
  11801.         ,helpstring("Creates and adds a datum dimension to the collection.")
  11802.         ,restricted, hidden
  11803.     ]
  11804.     HRESULT  AddDimensionDatum(
  11805.         [in] double X0, // X coordinate of first extension line.
  11806.         [in] double Y0, // Y coordinate of first extension line.
  11807.         [in] double Z0, // Z coordinate of first extension line.
  11808.         [in] double X1, // X coordinate of second extension line.
  11809.         [in] double Y1, // Y coordinate of second extension line.
  11810.         [in] double Z1, // Z coordinate of second extension line.
  11811.         [in] double X2, // X coordinate of dimension.
  11812.         [in] double Y2, // Y coordinate of dimension.
  11813.         [in] double Z2, // Z coordinate of dimension.
  11814.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11815.         );
  11816.  
  11817.         /**
  11818.          * Creates and adds an angular dimension to the collection.
  11819.          */
  11820.     [
  11821.          helpcontext(0x10070026)
  11822.         ,helpstring("Creates and adds an angular dimension to the collection.")
  11823.         ,restricted, hidden
  11824.     ]
  11825.     HRESULT  AddDimensionAngular(
  11826.         [in] IGraphic* Line1, // First graphic.
  11827.         [in] IGraphic* Line2, // Second graphic.
  11828.         [in] double X0, // X coordinate of dimension.
  11829.         [in] double Y0, // Y coordinate of dimension.
  11830.         [in] double Z0, // Z coordinate of dimension.
  11831.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11832.         );
  11833.  
  11834.         /**
  11835.          * Creates and adds a radial dimension to the collection.
  11836.          */
  11837.     [
  11838.          helpcontext(0x10070027)
  11839.         ,helpstring("Creates and adds a radial dimension to the collection.")
  11840.         ,restricted, hidden
  11841.     ]
  11842.     HRESULT  AddDimensionRadius(
  11843.         [in] IGraphic* Arc, // Arc or circle.
  11844.         [in] double X0, // X coordinate of dimension text.
  11845.         [in] double Y0, // Y coordinate of dimension text.
  11846.         [in] double Z0, // Z coordinate of dimension text.
  11847.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11848.         );
  11849.  
  11850.         /**
  11851.          * Creates and adds a diameter dimension to the collection.
  11852.          */
  11853.     [
  11854.          helpcontext(0x10070028)
  11855.         ,helpstring("Creates and adds a diameter dimension to the collection.")
  11856.         ,restricted, hidden
  11857.     ]
  11858.     HRESULT  AddDimensionDiameter(
  11859.         [in] IGraphic* Arc, // Arc or circle.
  11860.         [in] double X0, // X coordinate of dimension text.
  11861.         [in] double Y0, // Y coordinate of dimension text.
  11862.         [in] double Z0, // Z coordinate of dimension text.
  11863.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11864.         );
  11865.  
  11866. #endif //METHOD_OVERFLOW_BUG
  11867.  
  11868.         /**
  11869.          * Creates and adds a new Graphic object to the collection.
  11870.          */
  11871.         [
  11872.              helpcontext(0x10070029)
  11873.             ,helpstring("Creates and adds a new Graphic object to the collection.")
  11874.         ]
  11875.         HRESULT  Add(
  11876.             [in, optional] VARIANT* GraphicType, // The type of the Graphic object.
  11877.             [in, optional] VARIANT* RegenMethod, // A RegenMethod object or index.
  11878.             [in, optional] VARIANT* Inherit, // True if the new Graphic object will inherit the properties of its parent.
  11879.             [in, optional] VARIANT* Style, // Not used in current implementation.
  11880.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  11881.             [in, optional] VARIANT* After, // The Graphic object or index that will precede the added Graphic object.
  11882.             [out, retval] IGraphic** prop // The newly created Graphic object.
  11883.             );
  11884.  
  11885.         /**
  11886.          * Adds an existing Graphic object to the collection.
  11887.          */
  11888.         [
  11889.              helpcontext(0x1007002A)
  11890.             ,helpstring("Adds an existing Graphic object to the collection.")
  11891.         ]
  11892.         HRESULT  AddGraphic(
  11893.             [in] IGraphic* Graphic,    // The Graphic object to add.
  11894.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  11895.             [in, optional] VARIANT* After // The Graphic object or index that will precede the added Graphic object.
  11896.             );
  11897.  
  11898.         /**
  11899.          * Returns the collection's bounding box.
  11900.          */
  11901.         [
  11902.              helpcontext(0x1007002B)
  11903.             ,helpstring("Returns the collection's bounding box.")
  11904.             ,restricted, hidden
  11905.         ]
  11906.         HRESULT  CalcBoundingBox(
  11907.             [in, optional] VARIANT* Transform, // A transformation Matrix object.
  11908.             [out, retval] BoundingBox** prop // The BoundingBox object.
  11909.             );
  11910.  
  11911.         /**
  11912.          * Clears the contents of the collection.
  11913.          */
  11914.         [
  11915.              helpcontext(0x1007002C)
  11916.             ,helpstring("Clears the contents of the collection.")
  11917.         ]
  11918.         HRESULT  Clear(
  11919.             [in, optional] VARIANT* CosmeticOnly // True to only clear cosmetics.
  11920.             );
  11921.  
  11922.         /**
  11923.          * Clears construction lines and arcs.
  11924.          *
  11925.          * @see TCADAPI TCWClearAllConstructions function.
  11926.          */
  11927.         [
  11928.              helpcontext(0x1007002D)
  11929.             ,helpstring("Clears construction lines and arcs.")
  11930.             ,restricted, hidden
  11931.         ]
  11932.         HRESULT  ClearConstruction(
  11933.             );
  11934.  
  11935.         /**
  11936.          * Copies the contents of the collection to the Clipboard.
  11937.          */
  11938.         [
  11939.              helpcontext(0x1007002E)
  11940.             ,helpstring("Copies the contents of the collection to the Clipboard.")
  11941.             ,restricted, hidden
  11942.         ]
  11943.         HRESULT  Copy(
  11944.             );
  11945.  
  11946.         /**
  11947.          * Cuts the contents of the collection to the Clipboard.
  11948.          */
  11949.         [
  11950.              helpcontext(0x1007002F)
  11951.             ,helpstring("Cuts the contents of the collection to the Clipboard.")
  11952.             ,restricted, hidden
  11953.         ]
  11954.         HRESULT  Cut(
  11955.             );
  11956.  
  11957.         /**
  11958.          * Draws all the Graphic objects in the collection.
  11959.          */
  11960.     [
  11961.          helpcontext(0x10070030)
  11962.         ,helpstring("Draws all the Graphic objects in the collection.")
  11963.         ,restricted, hidden
  11964.     ]
  11965.     HRESULT  Draw(
  11966.         [in] VARIANT* View // If supplied, the View object to draw on.
  11967.         );
  11968.  
  11969.         /**
  11970.          * Removes an item from the collection.
  11971.          */
  11972.         [
  11973.              helpcontext(0x10070031)
  11974.             ,helpstring("Removes an item from the collection.")
  11975.         ]
  11976.         HRESULT  Remove(
  11977.             [in] VARIANT* Index, // The index of item to be removed.
  11978.             [out, retval] IGraphic** prop // The Graphic object that was removed.
  11979.             );
  11980.  
  11981.         /**
  11982.          * Selects all the Graphic object's in the collection.
  11983.          *
  11984.          * @see TCADAPI TCWSelectAll function.
  11985.          */
  11986.         [
  11987.              helpcontext(0x10070032)
  11988.             ,helpstring("Selects all the Graphic object's in the collection.")
  11989.         ]
  11990.         HRESULT  Select(
  11991.             );
  11992.  
  11993.         /**
  11994.          * Unselects all the Graphic object's in the collection.
  11995.          *
  11996.          * @see TCADAPI TCWDeselectAll function.
  11997.          */
  11998.         [
  11999.              helpcontext(0x10070033)
  12000.             ,helpstring("Unselects all the Graphic object's in the collection.")
  12001.         ]
  12002.         HRESULT  Unselect(
  12003.             );
  12004.  
  12005.         //////////////////////////// AddXXXMethods \\\\\\\\\\\\\\\\\\\\\\\\\\\\
  12006.  
  12007.         /**
  12008.          * Creates and adds a construction line to the collection.
  12009.          *
  12010.          * @see TCADAPI TCWConstructionAngularLine function
  12011.          */
  12012.     [
  12013.          helpcontext(0x10070034)
  12014.         ,helpstring("Creates and adds a construction line to the collection.")
  12015.         ,restricted, hidden
  12016.     ]
  12017.     HRESULT  AddConstructionAngularLine(
  12018.         [in] double X0, // X coordinate of the first point on line.
  12019.         [in] double Y0, // Y coordinate of the first point on line.
  12020.         [in] double Z0, // Z coordinate of the first point on line.
  12021.         [in] double X1, // X coordinate of the second point on line.
  12022.         [in] double Y1, // Y coordinate of the second point on line.
  12023.         [in] double Z1, // Z coordinate of the second point on line.
  12024.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12025.         );
  12026.  
  12027.         /**
  12028.          * Creates and adds a construction line to the collection.
  12029.          *
  12030.          * @see TCADAPI TCWConstructionHorizontalLine function
  12031.          */
  12032.     [
  12033.          helpcontext(0x10070035)
  12034.         ,helpstring("Creates and adds a construction line to the collection.")
  12035.         ,restricted, hidden
  12036.     ]
  12037.     HRESULT  AddConstructionHorizontalLine(
  12038.         [in] double X0, // X coordinate of the line.
  12039.         [in] double Y0, // Y coordinate of the line.
  12040.         [in] double Z0, // Z coordinate of the line.
  12041.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12042.         );
  12043.  
  12044.         /**
  12045.          * Creates and adds a construction line to the collection.
  12046.          *
  12047.          * @see TCADAPI TCWConstructionVerticalLine function
  12048.          */
  12049.     [
  12050.          helpcontext(0x10070036)
  12051.         ,helpstring("Creates and adds a construction line to the collection.")
  12052.         ,restricted, hidden
  12053.     ]
  12054.     HRESULT  AddConstructionVerticalLine(
  12055.         [in] double X0, // X coordinate of the line.
  12056.         [in] double Y0, // Y coordinate of the line.
  12057.         [in] double Z0, // Z coordinate of the line.
  12058.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12059.         );
  12060.  
  12061.         /**
  12062.          * Creates and adds a construction circle to the collection.
  12063.          *
  12064.          * @see TCADAPI TCWConstructionCenterAndPointCircle function
  12065.          */
  12066.     [
  12067.          helpcontext(0x10070037)
  12068.         ,helpstring("Creates and adds a construction circle to the collection.")
  12069.         ,restricted, hidden
  12070.     ]
  12071.     HRESULT  AddConstructionCenterAndPointCircle(
  12072.         [in] double X0, // X coordinate of the center point.
  12073.         [in] double Y0, // Y coordinate of the center point.
  12074.         [in] double Z0, // Z coordinate of the center point.
  12075.         [in] double X1, // X coordinate of the perimeter point.
  12076.         [in] double Y1, // Y coordinate of the perimeter point.
  12077.         [in] double Z1, // Z coordinate of the perimeter point.
  12078.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12079.         );
  12080.  
  12081.         /**
  12082.          * Creates and adds a construction circle to the collection.
  12083.          *
  12084.          * @see TCADAPI TCWConstructionDoublePointCircle function
  12085.          */
  12086.     [
  12087.          helpcontext(0x10070038)
  12088.         ,helpstring("Creates and adds a construction circle to the collection.")
  12089.         ,restricted, hidden
  12090.     ]
  12091.     HRESULT  AddConstructionDoublePointCircle(
  12092.         [in] double X0, // X coordinate of the first point.
  12093.         [in] double Y0, // Y coordinate of the first point.
  12094.         [in] double Z0, // Z coordinate of the first point.
  12095.         [in] double X1, // X coordinate of the second point.
  12096.         [in] double Y1, // Y coordinate of the second point.
  12097.         [in] double Z1, // Z coordinate of the second point.
  12098.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12099.         );
  12100.  
  12101.         /**
  12102.          * Creates and adds a construction circle to the collection.
  12103.          *
  12104.          * @see TCADAPI TCWConstructionTriplePointCircle function
  12105.          */
  12106.     [
  12107.          helpcontext(0x10070039)
  12108.         ,helpstring("Creates and adds a construction circle to the collection.")
  12109.         ,restricted, hidden
  12110.     ]
  12111.     HRESULT  AddConstructionTriplePointCircle(
  12112.         [in] double X0, // X coordinate of the first point.
  12113.         [in] double Y0, // Y coordinate of the first point.
  12114.         [in] double Z0, // Z coordinate of the first point.
  12115.         [in] double X1, // X coordinate of the second point.
  12116.         [in] double Y1, // Y coordinate of the second point.
  12117.         [in] double Z1, // Z coordinate of the second point.
  12118.         [in] double X2, // X coordinate of the third point.
  12119.         [in] double Y2, // Y coordinate of the third point.
  12120.         [in] double Z2, // Z coordinate of the third point.
  12121.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12122.         );
  12123.  
  12124.         /**
  12125.          * Creates and adds a dot marker to the collection.
  12126.          *
  12127.          * @see TCADAPI TCWDot function
  12128.          */
  12129.     [
  12130.          helpcontext(0x1007003A)
  12131.         ,helpstring("Creates and adds a dot marker to the collection.")
  12132.     ]
  12133.     HRESULT  AddDot(
  12134.         [in] double X0, // X coordinate of the point.
  12135.         [in] double Y0, // Y coordinate of the point.
  12136.         [in] double Z0, // Z coordinate of the point.
  12137.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12138.         );
  12139.  
  12140.         /**
  12141.          * Creates and adds a star to the collection.
  12142.          *
  12143.          * @see TCADAPI TCWStar function
  12144.          */
  12145.     [
  12146.          helpcontext(0x1007003B)
  12147.         ,helpstring("Creates and adds a star marker to the collection.")
  12148.     ]
  12149.     HRESULT  AddStar(
  12150.         [in] double X0, // X coordinate of the point.
  12151.         [in] double Y0, // Y coordinate of the point.
  12152.         [in] double Z0, // Z coordinate of the point.
  12153.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12154.         );
  12155.  
  12156.         /**
  12157.          * Creates and adds a square marker to the collection.
  12158.          *
  12159.          * @see TCADAPI TCWSquare function
  12160.          */
  12161.     [
  12162.          helpcontext(0x1007003C)
  12163.         ,helpstring("Creates and adds a square marker to the collection.")
  12164.     ]
  12165.     HRESULT  AddSquare(
  12166.         [in] double X0, // X coordinate of the point.
  12167.         [in] double Y0, // Y coordinate of the point.
  12168.         [in] double Z0, // Z coordinate of the point.
  12169.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12170.         );
  12171.  
  12172.         /**
  12173.          * Creates and adds a cross marker to the collection.
  12174.          *
  12175.          * @see TCADAPI TCWCross function
  12176.          */
  12177.     [
  12178.          helpcontext(0x1007003D)
  12179.         ,helpstring("Creates and adds a cross marker to the collection.")
  12180.     ]
  12181.     HRESULT  AddCross(
  12182.         [in] double X0, // X coordinate of the point.
  12183.         [in] double Y0, // Y coordinate of the point.
  12184.         [in] double Z0, // Z coordinate of the point.
  12185.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12186.         );
  12187.  
  12188.         /**
  12189.          * Creates and adds a circle marker to the collection.
  12190.          *
  12191.          * @see TCADAPI TCWCircle function
  12192.          */
  12193.     [
  12194.          helpcontext(0x1007003E)
  12195.         ,helpstring("Creates and adds a circle marker to the collection.")
  12196.     ]
  12197.     HRESULT  AddCircle(
  12198.         [in] double X0, // X coordinate of the point.
  12199.         [in] double Y0, // Y coordinate of the point.
  12200.         [in] double Z0, // Z coordinate of the point.
  12201.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12202.         );
  12203.  
  12204.         /**
  12205.          * Creates and adds a single line segment to the collection.
  12206.          *
  12207.          * @see TCADAPI TCWLineSingle function
  12208.          */
  12209.     [
  12210.          helpcontext(0x1007003F)
  12211.         ,helpstring("Creates and adds a single line segment to the collection.")
  12212.     ]
  12213.     HRESULT  AddLineSingle(
  12214.         [in] double X0, // X coordinate of the first endpoint.
  12215.         [in] double Y0, // Y coordinate of the first endpoint.
  12216.         [in] double Z0, // Z coordinate of the first endpoint.
  12217.         [in] double X1, // X coordinate of the second endpoint.
  12218.         [in] double Y1, // Y coordinate of the second endpoint.
  12219.         [in] double Z1, // Z coordinate of the second endpoint.
  12220.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12221.         );
  12222.  
  12223.         /**
  12224.          * Creates and adds a regular polygon to the collection.
  12225.          *
  12226.          * @see TCADAPI TCWLinePolygon function
  12227.          */
  12228.     [
  12229.          helpcontext(0x10070040)
  12230.         ,helpstring("Creates and adds a regular polygon to the collection.")
  12231.     ]
  12232.     HRESULT  AddLinePolygon(
  12233.         [in] double X0, // X coordinate of the center point.
  12234.         [in] double Y0, // Y coordinate of the center point.
  12235.         [in] double Z0, // Z coordinate of the center point.
  12236.         [in] double X1, // X coordinate of the corner point.
  12237.         [in] double Y1, // Y coordinate of the corner point.
  12238.         [in] double Z1, // Z coordinate of the corner point.
  12239.         [in] long nsides, // number of sides.
  12240.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12241.         );
  12242.  
  12243.         /**
  12244.          * Creates and adds a rectangle to the collection.
  12245.          *
  12246.          * @see TCADAPI TCWLineRectangle function
  12247.          */
  12248.     [
  12249.          helpcontext(0x10070041)
  12250.         ,helpstring("Creates and adds a rectangle to the collection.")
  12251.     ]
  12252.     HRESULT  AddLineRectangle(
  12253.         [in] double X0, // X coordinate of the upper left corner.
  12254.         [in] double Y0, // Y coordinate of the upper left corner.
  12255.         [in] double Z0, // Z coordinate of the upper left corner.
  12256.         [in] double X1, // X coordinate of the lower right corner.
  12257.         [in] double Y1, // Y coorindate of the lower right corner.
  12258.         [in] double Z1, // Z coorindate of the lower right corner.
  12259.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12260.         );
  12261.  
  12262.         /**
  12263.          * Creates and adds a rotated rectangle to the collection.
  12264.          *
  12265.          * @see TCADAPI TCWLineRotatedRectangle function
  12266.          */
  12267.     [
  12268.          helpcontext(0x10070042)
  12269.         ,helpstring("Creates and adds a rotated rectangle to the collection.")
  12270.     ]
  12271.     HRESULT  AddLineRotatedRectangle(
  12272.         [in] double X0, // X coordinate of the upper left corner.
  12273.         [in] double Y0, // Y coordinate of the upper left corner.
  12274.         [in] double Z0, // Z coordinate of the upper left corner.
  12275.         [in] double X1, // X coordinate of the lower right corner.
  12276.         [in] double Y1, // Y coorindate of the lower right corner.
  12277.         [in] double Z1, // Z coorindate of the lower right corner.
  12278.         [in] double Height, // Height of the rectangle.
  12279.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12280.         );
  12281.  
  12282.         /**
  12283.          * Creates and adds a single line segment to the collection.
  12284.          *
  12285.          * @see TCADAPI TCWLinePerpendicular function
  12286.          */
  12287.     [
  12288.          helpcontext(0x10070043)
  12289.         ,helpstring("Creates and adds a single line segment to the collection.")
  12290.     ]
  12291.     HRESULT  AddLinePerpendicular(
  12292.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  12293.         [in] double X0, // X coordinate of the point on the existing line.
  12294.         [in] double Y0, // Y coordinate of the point on the existing line.
  12295.         [in] double Z0, // Z coordinate of the point on the existing line.
  12296.         [in] double X1, // X coordinate of the second point on the new line.
  12297.         [in] double Y1, // Y coordinate of the second point on the new line.
  12298.         [in] double Z1, // Z coordinate of the second point on the new line.
  12299.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12300.         );
  12301.  
  12302.         /**
  12303.          * Creates and adds a single line segment to the collection.
  12304.          *
  12305.          * @see TCADAPI TCWLineParallel function
  12306.          */
  12307.     [
  12308.          helpcontext(0x10070044)
  12309.         ,helpstring("Creates and adds a single line segment to the collection.")
  12310.     ]
  12311.     HRESULT  AddLineParallel(
  12312.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  12313.         [in] double X0, // X coordinate of the new line.
  12314.         [in] double Y0, // Y coordinate of the new line.
  12315.         [in] double Z0, // Z coordinate of the new line.
  12316.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12317.         );
  12318.  
  12319.         /**
  12320.          * Creates and adds a multiple segment line to the collection.
  12321.          * The returned Graphic object contains only a beginning vertex.  The user must
  12322.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  12323.          * and a Graphic.Finish call to complete the Graphic object.
  12324.          *
  12325.          * @see TCADAPI TCWLineMultiline function
  12326.          */
  12327.     [
  12328.          helpcontext(0x10070045)
  12329.         ,helpstring("Creates and adds a multiple segment line to the collection.")
  12330.     ]
  12331.     HRESULT  AddLineMultiline(
  12332.         [in] double X0, // X coordinate of first endpoint.
  12333.         [in] double Y0, // Y coordinate of first endpoint.
  12334.         [in] double Z0, // Z coordinate of first endpoint.
  12335.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12336.         );
  12337.  
  12338.         /**
  12339.          * Creates and adds an irregular polygon to the collection.
  12340.          * The returned Graphic object contains only a beginning vertex.  The user must
  12341.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  12342.          * and a Graphic.Close call to complete the Graphic object.
  12343.          *
  12344.          * @see TCADAPI TCWLineIrregularPolygon function
  12345.          */
  12346.     [
  12347.          helpcontext(0x10070046)
  12348.         ,helpstring("Creates and adds an irregular polygon to the collection.")
  12349.     ]
  12350.     HRESULT  AddLineIrregularPolygon(
  12351.         [in] double X0, // X coordinate of first endpoint.
  12352.         [in] double Y0, // Y coordinate of first endpoint.
  12353.         [in] double Z0, // Z coordinate of first endpoint.
  12354.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12355.         );
  12356.  
  12357.         /**
  12358.          * Creates and adds a bezier curve to the collection.
  12359.          * The returned Graphic object contains only a beginning vertex.  The user must
  12360.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  12361.          * and a Graphic.Finish call to complete the Graphic object.
  12362.          *
  12363.          * @see TCADAPI TCWCurveBezier function
  12364.          */
  12365.     [
  12366.          helpcontext(0x10070047)
  12367.         ,helpstring("Creates and adds a bezier curve to the collection.")
  12368.     ]
  12369.     HRESULT  AddCurveBezier(
  12370.         [in] double X0, // X coordinate of the first endpoint.
  12371.         [in] double Y0, // Y coordinate of the first endpoint.
  12372.         [in] double Z0, // Z coordinate of the first endpoint.
  12373.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12374.         );
  12375.  
  12376.         /**
  12377.          * Creates and adds a cubic spline curve to the collection.
  12378.          * The returned Graphic object contains only a beginning vertex.  The user must
  12379.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  12380.          * and a Graphic.Finish call to complete the Graphic object.
  12381.          *
  12382.          * @see TCADAPI TCWCurveSpline function
  12383.          */
  12384.     [
  12385.          helpcontext(0x10070048)
  12386.         ,helpstring("Creates and adds a cubic spline curve to the collection.")
  12387.     ]
  12388.     HRESULT  AddCurveSpline(
  12389.         [in] double X0, // X coordinate of the first endpoint.
  12390.         [in] double Y0, // Y coordinate of the first endpoint.
  12391.         [in] double Z0, // Z coordinate of the first endpoint.
  12392.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12393.         );
  12394.  
  12395.         /**
  12396.          * Creates and adds a circle to the collection.
  12397.          *
  12398.          * @see TCADAPI TCWCircleCenterAndPoint function
  12399.          */
  12400.     [
  12401.          helpcontext(0x10070049)
  12402.         ,helpstring("Creates and adds a circle to the collection.")
  12403.     ]
  12404.     HRESULT  AddCircleCenterAndPoint(
  12405.         [in] double X0, // X coordinate of the center point.
  12406.         [in] double Y0, // Y coordinate of the center point.
  12407.         [in] double Z0, // Z coordinate of the cneter point.
  12408.         [in] double X1, // X coordinate of the radius point.
  12409.         [in] double Y1, // Y coordinate of the radius point.
  12410.         [in] double Z1, // Z coordinate of the radius point.
  12411.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12412.         );
  12413.  
  12414.         /**
  12415.          * Creates and adds a circle to the collection.
  12416.          *
  12417.          * @see TCADAPI TCWCircleDoublePoint function
  12418.          */
  12419.     [
  12420.          helpcontext(0x1007004A)
  12421.         ,helpstring("Creates and adds a circle to the collection.")
  12422.     ]
  12423.     HRESULT  AddCircleDoublePoint(
  12424.         [in] double X0, // X coordinate of the first point.
  12425.         [in] double Y0, // Y coordinate of the first point.
  12426.         [in] double Z0, // Z coordinate of the first point.
  12427.         [in] double X1, // X coordinate of the second point.
  12428.         [in] double Y1, // Y coordinate of the second point.
  12429.         [in] double Z1, // Z coordinate of the second point.
  12430.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12431.         );
  12432.  
  12433.         /**
  12434.          * Creates and adds a circle to the collection.
  12435.          *
  12436.          * @see TCADAPI TCWCircleTriplePoint function
  12437.          */
  12438.     [
  12439.          helpcontext(0x1007004B)
  12440.         ,helpstring("Creates and adds a circle to the collection.")
  12441.     ]
  12442.     HRESULT  AddCircleTriplePoint(
  12443.         [in] double X0, // X coordinate of the first point.
  12444.         [in] double Y0, // Y coordinate of the first point.
  12445.         [in] double Z0, // Z coordinate of the first point.
  12446.         [in] double X1, // X coordinate of the second point.
  12447.         [in] double Y1, // Y coordinate of the second point.
  12448.         [in] double Z1, // Z coordinate of the second point.
  12449.         [in] double X2, // X coordinate of the third point.
  12450.         [in] double Y2, // Y coordinate of the third point.
  12451.         [in] double Z2, // Z coordinate of the third point.
  12452.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12453.         );
  12454.  
  12455.         /**
  12456.          * Creates and adds a ellipse to the collection.
  12457.          *
  12458.          * @see TCADAPI TCWEllipse function
  12459.          */
  12460.     [
  12461.          helpcontext(0x1007004C)
  12462.         ,helpstring("Creates and adds a ellipse to the collection.")
  12463.     ]
  12464.     HRESULT  AddEllipse(
  12465.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  12466.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  12467.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  12468.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  12469.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  12470.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  12471.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12472.         );
  12473.  
  12474.         /**
  12475.          * Creates and adds a ellipse to the collection.
  12476.          *
  12477.          * @see TCADAPI TCWEllipseRotatedEllipse function
  12478.          */
  12479.     [
  12480.          helpcontext(0x1007004D)
  12481.         ,helpstring("Creates and adds a ellipse to the collection.")
  12482.     ]
  12483.     HRESULT  AddEllipseRotatedEllipse(
  12484.         [in] double X0, // X coordinate of ellipse's center point.
  12485.         [in] double Y0, // Y coordinate of ellipse's center point.
  12486.         [in] double Z0, // Z coordinate of ellipse's center point.
  12487.         [in] double X1, // X coordinate of major axis radius point.
  12488.         [in] double Y1, // Y coordinate of major axis radius point.
  12489.         [in] double Z1, // Z coordinate of major axis radius point.
  12490.         [in] double X2, // X coordinate of minor axis radius point.
  12491.         [in] double Y2, // Y coordinate of minor axis radius point.
  12492.         [in] double Z2, // Z coordinate of minor axis radius point.
  12493.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12494.         );
  12495.  
  12496.         /**
  12497.          * Creates and adds a ellipse to the collection.
  12498.          *
  12499.          * @see TCADAPI TCWEllipseFixedRatio function
  12500.          */
  12501.     [
  12502.          helpcontext(0x1007004E)
  12503.         ,helpstring("Creates and adds a ellipse to the collection.")
  12504.     ]
  12505.     HRESULT  AddEllipseFixedRatio(
  12506.         [in] double X0, // X coordinate of ellipse's center point.
  12507.         [in] double Y0, // Y coordinate of ellipse's center point.
  12508.         [in] double Z0, // Z coordinate of ellipse's center point.
  12509.         [in] double X1, // X coordinate of radius in Y direction.
  12510.         [in] double Y1, // Y coordinate of radius in Y direction.
  12511.         [in] double Z1, // Z coordinate of radius in Y direction.
  12512.         [in] double XToYRatio, // Ratio of Rx to Ry.
  12513.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12514.         );
  12515.  
  12516.         /**
  12517.          * Creates and adds an arc to the collection.
  12518.          *
  12519.          * @see TCADAPI TCWArcCenterAndPoint function
  12520.          */
  12521.     [
  12522.          helpcontext(0x1007004F)
  12523.         ,helpstring("Creates and adds an arc to the collection.")
  12524.     ]
  12525.     HRESULT  AddArcCenterAndPoint(
  12526.         [in] double X0, // X coordinate of arc's center point.
  12527.         [in] double Y0, // Y coordinate of arc's center point.
  12528.         [in] double Z0, // Z coordinate of arc's center point.
  12529.         [in] double X1, // X coordinate of arc's radius point.
  12530.         [in] double Y1, // Y coordinate of arc's radius point.
  12531.         [in] double Z1, // Z coordinate of arc's radius point.
  12532.         [in] double StartAngle, // Starting angle in radians.
  12533.         [in] double EndAngle, // Ending angle in radians.
  12534.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12535.         );
  12536.  
  12537.         /**
  12538.          * Creates and adds an arc to the collection.
  12539.          *
  12540.          * @see TCADAPI TCWArcDoublePoint function
  12541.          */
  12542.     [
  12543.          helpcontext(0x10070050)
  12544.         ,helpstring("Creates and adds an arc to the collection.")
  12545.     ]
  12546.     HRESULT  AddArcDoublePoint(
  12547.         [in] double X0, // X coordinate of first endpoint.
  12548.         [in] double Y0, // Y coordinate of first endpoint.
  12549.         [in] double Z0, // Z coordinate of first endpoint.
  12550.         [in] double X1, // X coordinate of second endpoint.
  12551.         [in] double Y1, // Y coordinate of second endpont.
  12552.         [in] double Z1, // Z coordinate of second endpoint.
  12553.         [in] double StartAngle, // Starting angle in radians.
  12554.         [in] double EndAngle, // Ending angle in radians.
  12555.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12556.         );
  12557.  
  12558.         /**
  12559.          * Creates and adds an arc to the collection.
  12560.          *
  12561.          * @see TCADAPI TCWArcTriplePoint function
  12562.          */
  12563.     [
  12564.          helpcontext(0x10070051)
  12565.         ,helpstring("Creates and adds an arc to the collection.")
  12566.     ]
  12567.     HRESULT  AddArcTriplePoint(
  12568.         [in] double X0, // X coordinate of starting point.
  12569.         [in] double Y0, // Y coordinate of starting point.
  12570.         [in] double Z0, // Z coordinate of starting point.
  12571.         [in] double X1, // X coordinate of point on perimeter.
  12572.         [in] double Y1, // Y coordinate of point on perimeter.
  12573.         [in] double Z1, // Z coordinate of point on perimeter.
  12574.         [in] double X2, // X coordinate of ending point.
  12575.         [in] double Y2, // Y coordinate of ending point.
  12576.         [in] double Z2, // Z coordinate of ending point.
  12577.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12578.         );
  12579.  
  12580.         /**
  12581.          * Creates and adds an elliptical arc to the collection.
  12582.          *
  12583.          * @see TCADAPI TCWArcElliptical function
  12584.          */
  12585.     [
  12586.          helpcontext(0x10070052)
  12587.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  12588.     ]
  12589.     HRESULT  AddArcElliptical(
  12590.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  12591.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  12592.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  12593.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  12594.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  12595.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  12596.         [in] double StartAngle, // Starting angle in radians.
  12597.         [in] double EndAngle, // Ending angle in radians.
  12598.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12599.         );
  12600.  
  12601.         /**
  12602.          * Creates and adds an elliptical arc to the collection.
  12603.          *
  12604.          * @see TCADAPI TCWArcRotatedElliptical function
  12605.          */
  12606.     [
  12607.          helpcontext(0x10070053)
  12608.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  12609.     ]
  12610.     HRESULT  AddArcRotatedElliptical(
  12611.         [in] double X0, // X coordinate of elliptical arc's center point.
  12612.         [in] double Y0, // Y coordinate of elliptical arc's center point.
  12613.         [in] double Z0, // Z coordinate of elliptical arc's center point.
  12614.         [in] double X1, // X coordinate of major axis radius point.
  12615.         [in] double Y1, // Y coordinate of major axis radius point.
  12616.         [in] double Z1, // Z coordinate of major axis radius point.
  12617.         [in] double X2, // X coordinate of minor axis radius point.
  12618.         [in] double Y2, // Y coordinate of minor axis radius point.
  12619.         [in] double Z2, // Z coordinate of minor axis radius point.
  12620.         [in] double StartAngle, // Starting angle in radians.
  12621.         [in] double EndAngle, // Ending angle in radians.
  12622.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12623.         );
  12624.  
  12625.         /**
  12626.          * Creates and adds an elliptical arc to the collection.
  12627.          *
  12628.          * @see TCADAPI TCWArcEllipticalFixedRatio function
  12629.          */
  12630.     [
  12631.          helpcontext(0x10070054)
  12632.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  12633.     ]
  12634.     HRESULT  AddArcEllipticalFixedRatio(
  12635.         [in] double X0, // X coordinate of ellipse's center point.
  12636.         [in] double Y0, // Y coordinate of ellipse's center point.
  12637.         [in] double Z0, // Z coordinate of ellipse's center point.
  12638.         [in] double X1, // X coordinate of radius in Y direction.
  12639.         [in] double Y1, // Y coordinate of radius in Y direction.
  12640.         [in] double Z1, // Z coordinate of radius in Y direction.
  12641.         [in] double XToYRatio, // Ratio of Rx to Ry.
  12642.         [in] double StartAngle, // Starting angle in radians.
  12643.         [in] double EndAngle, // Ending angle in radians.
  12644.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12645.         );
  12646.  
  12647.         /**
  12648.          * Creates and adds a text Graphic object to the collection.
  12649.          *
  12650.          * @see TCADAPI TCWText function
  12651.          */
  12652.     [
  12653.          helpcontext(0x10070055)
  12654.         ,helpstring("Creates and adds a text Graphic object to the collection.")
  12655.     ]
  12656.     HRESULT  AddText(
  12657.         [in] BSTR Text, // The text string.
  12658.         [in] double X0, // X coordinate of text's starting point.
  12659.         [in] double Y0, // Y coordinate of text's starting point.
  12660.         [in] double Z0, // Z coordinate of text's starting point.
  12661.         [in] double Height, // Height of text object.
  12662.         [in, optional] VARIANT* Angle, // Rotation angle of text in radians.
  12663.         [in, optional] VARIANT* Width, // Width of text object.
  12664.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  12665.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  12666.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12667.         );
  12668.  
  12669.         ///////////////////// Blocks Groups and Hatches \\\\\\\\\\\\\\\\\\\\\\\\\\
  12670.  
  12671.         /**
  12672.          * Creates a block in the Drawing object from the Graphic objects in the collection.
  12673.          *
  12674.          * @see TCADAPI TCWBlockCreate function
  12675.          */
  12676.     [
  12677.          helpcontext(0x10070056)
  12678.         ,helpstring("Creates a block in the Drawing object from the Graphic objects in the collection.")
  12679.         ,restricted, hidden
  12680.     ]
  12681.     HRESULT  CreateBlock(
  12682.         [in, optional] BSTR Name, // Name for the new block.
  12683.         [in, optional] VARIANT* XRef, // X coordinate of the block reference point.
  12684.         [in, optional] VARIANT* YRef, // Y coordinate of the block reference point.
  12685.         [in, optional] VARIANT* ZRef, // Z coordinate of the block reference point.
  12686.         [in, optional] VARIANT* CopyGraphics, // True to make the group using copies of the Graphic objects in the Graphics collection.
  12687.         [in, optional] VARIANT* InsertBlock, // True to insert the new block in the Drawing object.
  12688.         [in, out, optional] VARIANT* Insert, // The Insert Graphic object if InsertBlock was true
  12689.         [out, retval] Block** prop // The newly created block.
  12690.         );
  12691.  
  12692.         /**
  12693.          * Adds a block insertion to the collection.
  12694.          *
  12695.          * @see TCADAPI TCWBlockInsert function
  12696.          */
  12697.     [
  12698.          helpcontext(0x10070057)
  12699.         ,helpstring("Adds a block insertion to the collection.")
  12700.         //,restricted, hidden
  12701.     ]
  12702.     HRESULT  AddBlockInsertion(
  12703.         [in] VARIANT* Block, // BlockObj or index of the block.
  12704.         [in, optional] VARIANT* X0, // X coordinate of the block insertion point.
  12705.         [in, optional] VARIANT* Y0, // Y coordinate of the block insertion point.
  12706.         [in, optional] VARIANT* Z0, // Z coordinate of the block insertion point.
  12707.         [in, optional] VARIANT* XScale, // X scale factor.
  12708.         [in, optional] VARIANT* YScale, // Y scale factor.
  12709.         [in, optional] VARIANT* ZScale, // Z scale factor.
  12710.         [in, optional] VARIANT* Angle, // Rotation angle of block insertion in radians.
  12711.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12712.         );
  12713.  
  12714.         /**
  12715.          * Adds a group to the collection from the Graphic objects in the collection.
  12716.          *
  12717.          * @see TCADAPI TCWGroupCreate function
  12718.          */
  12719.     [
  12720.          helpcontext(0x10070058)
  12721.         ,helpstring("Adds a group to the collection from the Graphic objects in the collection.")
  12722.         ,restricted, hidden
  12723.     ]
  12724.     HRESULT  AddGroup(
  12725.         [in, optional] VARIANT* Name, // Name for the new group.
  12726.         [in, optional] VARIANT* Copy, // True to make the group using copies of the Graphic objects in the Graphics collection.
  12727.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12728.         );
  12729.  
  12730.         /**
  12731.          * Explodes groups and block insertions in the collection.
  12732.          *
  12733.          * @see TCADAPI TCWExplode function
  12734.          */
  12735.     [
  12736.          helpcontext(0x10070059)
  12737.         ,helpstring("Explodes groups and block insertions in the collection.")
  12738.         ,restricted, hidden
  12739.     ]
  12740.     HRESULT  Explode(
  12741.         [out, retval] GraphicSet** prop // The exploded Graphic objects.
  12742.         );
  12743.  
  12744.         /////////////////////////// Copy Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  12745.  
  12746.         /**
  12747.          * Copies the Graphic objects in the collection along a line.
  12748.          */
  12749.     [
  12750.          helpcontext(0x1007005A)
  12751.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  12752.         ,restricted, hidden
  12753.     ]
  12754.     HRESULT  LinearCopyAbsolute(
  12755.         [in] double X, // X coordinate to copy to.
  12756.         [in] double Y, // Y coordinate to copy to.
  12757.         [in] double Z, // Z coordinate to copy to.
  12758.         [in] long Copies, // Number of copies including the original.
  12759.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  12760.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12761.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12762.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12763.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12764.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12765.         );
  12766.  
  12767.         /**
  12768.          * Copies the Graphic objects in the collection along a line.
  12769.          */
  12770.     [
  12771.          helpcontext(0x1007005B)
  12772.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  12773.         ,restricted, hidden
  12774.     ]
  12775.     HRESULT  LinearCopyRelative(
  12776.         [in] double X, // X offset.
  12777.         [in] double Y, // Y offset.
  12778.         [in] double Z, // Z offset.
  12779.         [in] long Copies, // Number of copies including the original.
  12780.         [in, optional] VARIANT* Fit, // True if specified offset is for last copy.
  12781.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12782.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12783.         );
  12784.  
  12785.         /**
  12786.          * Copies the Graphic objects in the collection along a line.
  12787.          */
  12788.     [
  12789.          helpcontext(0x1007005C)
  12790.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  12791.         ,restricted, hidden
  12792.     ]
  12793.     HRESULT  LinearCopyAngle(
  12794.         [in] double Length, // Length of copy.
  12795.         [in] double Angle, // Angle of copy in radians.
  12796.         [in] long Copies, // Number of copies including the original.
  12797.         [in, optional] VARIANT* Fit, // True if specified length is for last copy.
  12798.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12799.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12800.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12801.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12802.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12803.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12804.         );
  12805.  
  12806.         /**
  12807.          * Copies the Graphic objects in the collection radially.
  12808.          * Always rotates in the currently active workplane?
  12809.          */
  12810.     [
  12811.          helpcontext(0x1007005D)
  12812.         ,helpstring("Copies the Graphic objects in the collection radially.")
  12813.         ,restricted, hidden
  12814.     ]
  12815.     HRESULT  RadialCopyAbsolute(
  12816.         [in] double X0, // X coordinate of center of arc.
  12817.         [in] double Y0, // Y coordinate of center of arc.
  12818.         [in] double Z0, // Z coordinate of center of arc.
  12819.         [in] double X1, // X coordinate of point on arc.
  12820.         [in] double Y1, // Y coordinate of point on arc.
  12821.         [in] double Z1, // Z coordinate of point on arc.
  12822.         [in] long Copies, // Number of copies including the original.
  12823.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  12824.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12825.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12826.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12827.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12828.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12829.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12830.         );
  12831.  
  12832.         /**
  12833.          * Copies the Graphic objects in the collection radially.
  12834.          * Always rotates in the currently active workplane?
  12835.          */
  12836.     [
  12837.          helpcontext(0x1007005E)
  12838.         ,helpstring("Copies the Graphic objects in the collection radially.")
  12839.         ,restricted, hidden
  12840.     ]
  12841.     HRESULT  RadialCopyAngle(
  12842.         [in] double X, // X coordinate of center of arc.
  12843.         [in] double Y, // Y coordinate of center of arc.
  12844.         [in] double Z, // Z coordinate of center of arc.
  12845.         [in] double Angle, // Angle between copies or for last copy.
  12846.         [in] double RotationAngle, // Angle to rotate each copy.
  12847.         [in] long Copies, // Number of copies including the original.
  12848.         [in, optional] VARIANT* Fit, // True if specified angle is for last copy.
  12849.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12850.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12851.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12852.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12853.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12854.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12855.         );
  12856.  
  12857.         /**
  12858.          * Copies the Graphic objects in a two dimensional array.
  12859.          * Always translates in the currently active workplane?
  12860.          */
  12861.     [
  12862.          helpcontext(0x1007005F)
  12863.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  12864.         ,restricted, hidden
  12865.     ]
  12866.     HRESULT  ArrayCopyAbsolute(
  12867.         [in] double X, // Coordinate defining row and column spacing.
  12868.         [in] double Y, // Coordinate defining row and column spacing.
  12869.         [in] double Z, // Coordinate defining row and column spacing.
  12870.         [in] long Rows, // Number of rows including the original.
  12871.         [in] long Columns, // Number of columns including the original.
  12872.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  12873.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12874.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12875.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12876.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12877.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12878.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12879.         );
  12880.  
  12881.         /**
  12882.          * Copies the Graphic objects in a two dimensional array.
  12883.          * Always translates in the currently active workplane?
  12884.          */
  12885.     [
  12886.          helpcontext(0x10070060)
  12887.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  12888.         ,restricted, hidden
  12889.     ]
  12890.     HRESULT  ArrayCopyRelative(
  12891.         [in] double U, // Column offset.
  12892.         [in] double V, // Row offset.
  12893.         [in] long Rows, // Number of rows including the original.
  12894.         [in] long Columns, // Number of columns including the original.
  12895.         [in, optional] VARIANT* Fit, // True if specified offsets are for last copy.
  12896.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12897.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12898.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12899.         );
  12900.  
  12901.         /**
  12902.          * Mirrors the Graphic objects in the collection about a line.
  12903.          */
  12904.     [
  12905.          helpcontext(0x10070061)
  12906.         ,helpstring("Mirrors the Graphic objects in the collection about a line.")
  12907.         ,restricted, hidden
  12908.     ]
  12909.     HRESULT  MirrorCopyLine(
  12910.         [in] double X0, // X coordinate of the first point on line.
  12911.         [in] double Y0, // Y coordinate of the first point on line.
  12912.         [in] double Z0, // Z coordinate of the first point on line.
  12913.         [in] double X1, // X coordinate of the second point on line.
  12914.         [in] double Y1, // Y coordinate of the second point on line.
  12915.         [in] double Z1, // Z coordinate of the second point on line.
  12916.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  12917.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12918.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12919.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  12920.         );
  12921.  
  12922.         /**
  12923.          * Mirrors the Graphic objects in the collection about an angle.
  12924.          */
  12925.     [
  12926.          helpcontext(0x10070062)
  12927.         ,helpstring("Mirrors the Graphic objects in the collection about an angle.")
  12928.         ,restricted, hidden
  12929.     ]
  12930.     HRESULT  MirrorCopyAngle(
  12931.         [in] double X, // X coordinate to mirror to.
  12932.         [in] double Y, // Y coordinate to mirror to.
  12933.         [in] double Z, // Z coordinate to mirror to.
  12934.         [in] double Angle, // Angle of mirror.
  12935.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  12936.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12937.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12938.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12939.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12940.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12941.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  12942.         );
  12943.  
  12944.         /**
  12945.          * Scales the Graphic objects in the collection.
  12946.          *
  12947.          * @see TCADAPI TCWSelectionScale function.
  12948.          */
  12949.     [
  12950.          helpcontext(0x10070063)
  12951.         ,helpstring("Scales the Graphic objects in the collection.")
  12952.         ,restricted, hidden
  12953.     ]
  12954.     HRESULT  Scale(
  12955.         [in] double XScale, // X scale factor.
  12956.         [in] double YScale, // Y scale factor.
  12957.         [in] double ZScale, // Z scale factor.
  12958.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12959.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12960.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12961.         [out, retval] IMatrix** prop // The matrix that was calculated.
  12962.         );
  12963.  
  12964.         /**
  12965.          * Rotates the Graphic objects in the collection.
  12966.          *
  12967.          * @see TCADAPI TCWSelectionRotate function.
  12968.          */
  12969.     [
  12970.          helpcontext(0x10070064)
  12971.         ,helpstring("Rotates the Graphic objects in the collection.")
  12972.         ,restricted, hidden
  12973.     ]
  12974.     HRESULT  RotateAxis(
  12975.         [in] double Angle, // Angle of rotation in radians.
  12976.         [in, optional] VARIANT* XAxis, // X coordinate of axis direction.
  12977.         [in, optional] VARIANT* YAxis, // Y coordinate of axis direction.
  12978.         [in, optional] VARIANT* ZAxis, // Z coordinate of axis direction.
  12979.         [in, optional] VARIANT* X, // X coordinate of the rotation center.
  12980.         [in, optional] VARIANT* Y, // Y coordinate of the rotation center.
  12981.         [in, optional] VARIANT* Z, // Z coordinate of the rotation center.
  12982.         [out, retval] IMatrix** prop // The matrix that was calculated.
  12983.         );
  12984.  
  12985.         /**
  12986.          * Rotates the Graphic objects in the collection.
  12987.          *
  12988.          * @see TCADAPI TCWSelectionRotate function.
  12989.          */
  12990.     [
  12991.          helpcontext(0x10070065)
  12992.         ,helpstring("Rotates the Graphic objects in the collection.")
  12993.         ,restricted, hidden
  12994.     ]
  12995.     HRESULT  RotateAbsolute(
  12996.         [in] VARIANT* XTo, // X coordinate of the point to rotate to.
  12997.         [in] VARIANT* YTo, // Y coordinate of the point to rotate to.
  12998.         [in] VARIANT* ZTo, // Z coordinate of the point to rotate to.
  12999.         [in] VARIANT* XFrom, // X coordinate of the point to rotate from.
  13000.         [in] VARIANT* YFrom, // Y coordinate of the point to rotate from.
  13001.         [in] VARIANT* ZFrom, // Z coordinate of the point to rotate from.
  13002.         [in, optional] VARIANT* XRef, // X coordinate of the rotation center.
  13003.         [in, optional] VARIANT* YRef, // Y coordinate of the rotation center.
  13004.         [in, optional] VARIANT* ZRef, // Z coordinate of the rotation center.
  13005.         [out, retval] IMatrix** prop // The matrix that was calculated.
  13006.         );
  13007.  
  13008.         /**
  13009.          * Moves the Graphic objects in the collection to a new location.
  13010.          *
  13011.          * @see TCADAPI TCWSelectionMove function.
  13012.          */
  13013.     [
  13014.          helpcontext(0x10070066)
  13015.         ,helpstring("Moves the Graphic objects in the collection to a new location.")
  13016.         ,restricted, hidden
  13017.     ]
  13018.     HRESULT  MoveAbsolute(
  13019.         [in] double X, // X coordinate to move to.
  13020.         [in] double Y, // Y coordinate to move to.
  13021.         [in] double Z, // Z coordinate to move to.
  13022.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  13023.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  13024.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  13025.         [out, retval] IMatrix** prop // The matrix that was calculated.
  13026.         );
  13027.  
  13028.         /**
  13029.          * Moves the Graphic objects in the collection by a specified offset.
  13030.          *
  13031.          * @see TCADAPI TCWSelectionMove function.
  13032.          */
  13033.     [
  13034.          helpcontext(0x10070067)
  13035.         ,helpstring("Moves the Graphic objects in the collection by a specified offset.")
  13036.         ,restricted, hidden
  13037.     ]
  13038.     HRESULT  MoveRelative(
  13039.         [in] double X, // X offset.
  13040.         [in] double Y, // Y offset.
  13041.         [in] double Z, // Z offset.
  13042.         [out, retval] IMatrix** prop // The matrix that was calculated.
  13043.         );
  13044.  
  13045.         /**
  13046.          * Transforms the Graphic objects in the collection.
  13047.          */
  13048.     [
  13049.          helpcontext(0x10070068)
  13050.         ,helpstring("Transforms the Graphic object.")
  13051.         ,restricted, hidden
  13052.     ]
  13053.     HRESULT  Transform(
  13054.         [in] IMatrix* Transform // The matrix to perform transformation.
  13055.         );
  13056.  
  13057.         ////////////////////// Miscellaneous Edit Methods \\\\\\\\\\\\\\\\\\\\
  13058.  
  13059.         /**
  13060.          * Aligns the Graphic objects in the collection.
  13061.          *
  13062.          * @see TCADAPI TCWAlignXXX functions.
  13063.          */
  13064.     [
  13065.          helpcontext(0x10070069)
  13066.         ,helpstring("Aligns the Graphic objects in the collection.")
  13067.         ,restricted, hidden
  13068.     ]
  13069.     HRESULT  Align(
  13070.         [in] ImsiAlignType AlignType // Bottom, middle, etc.
  13071.         );
  13072.  
  13073.         /**
  13074.          * Aligns the Graphic objects in the collection along a line.
  13075.          */
  13076.     [
  13077.          helpcontext(0x1007006A)
  13078.         ,helpstring("Aligns the Graphic objects in the collection along a line.")
  13079.         ,restricted, hidden
  13080.     ]
  13081.     HRESULT  AlignAlongLine(
  13082.         [in] double X0, // X coordinate of the first point.
  13083.         [in] double Y0, // Y coordinate of the first point.
  13084.         [in] double Z0, // Z coordinate of the first point.
  13085.         [in] double X1, // X coordinate of the second point.
  13086.         [in] double Y1, // Y coordinate of the second point.
  13087.         [in] double Z1 // Z coordinate of the second point.
  13088.         );
  13089.  
  13090.         /**
  13091.          * Returns the index within the Graphics collection of the specified graphic handle.
  13092.          * Private.
  13093.          */
  13094.         [
  13095.              restricted
  13096.             ,helpcontext(0x1007006B)
  13097.             ,helpstring("Private.  Returns the index within the Graphics collection of the specified graphic handle.")
  13098.         ]
  13099.         HRESULT  _FindIndex(
  13100.             [in] long g, // The graphic handle.
  13101.             [out, retval] long* prop // The index.
  13102.             );
  13103.  
  13104.         /**
  13105.          * Returns the Graphic objects in the collection that match a query string.
  13106.          *
  13107.          * @see TCADAPI TCWSelectByQuery function.
  13108.          */
  13109.         [
  13110.              helpcontext(0x1007006C)
  13111.             ,helpstring("Returns the Graphic objects in the collection that match a query string.")
  13112.             ,restricted, hidden
  13113.         ]
  13114.         HRESULT  QuerySet(
  13115.             [in] BSTR Query, // The query string.
  13116.             [out, retval] GraphicSet** prop // The matching Graphic objects, as a GraphicSet__Object.
  13117.             );
  13118.  
  13119.         /**
  13120.          * Creates and adds a group of polylines or polygons to the collection.
  13121.          */
  13122.     [
  13123.          helpcontext(0x1007006D)
  13124.         ,helpstring("Creates and adds a group of polylines or polygons to the collection.")
  13125.         ,restricted, hidden
  13126.     ]
  13127.     HRESULT  AddPolys(
  13128.         [in] ImsiPolyType Type, // Type of poly(s) to be added.
  13129.         [in] VARIANT* Coords,   // Array of (X, Y, Z) poly coordinates.
  13130.         [out, retval] GraphicSet** NewPolys // The newly created Graphic objects.
  13131.         );
  13132.  
  13133.         /**
  13134.          * Generates a bounding polygon array to use in drag operations.
  13135.          *
  13136.          * @see View::DragOutline
  13137.          */
  13138.     [
  13139.          helpcontext(0x1007006E)
  13140.         ,helpstring("Generates a bounding polygon array to use in drag operations.")
  13141.         ,restricted, hidden
  13142.     ]
  13143.     HRESULT  CreateDragOutline(
  13144.         [in, out] VARIANT* Coords // Array of (X, Y, Z) polygon coordinates.
  13145.         );
  13146.  
  13147.         /**
  13148.          * Creates and adds a bunch of polylines to the collection.
  13149.          * The returned Graphics object contains a set with freshly created
  13150.          * polygons. The user can set properties, etc.
  13151.          */
  13152.     [
  13153.          helpcontext(0x1007006F)
  13154.         ,helpstring("Creates and adds a bunch of polylines to the collection.")
  13155.         ,restricted, hidden
  13156.     ]
  13157.     HRESULT  AddPolylines(
  13158.         [in] long NumberOfPolylines, // number of polylines to create
  13159.         [in] VARIANT* Coords,   // SafeArray of triplets of coordinates.
  13160.         [in] IMSI_BOOL closed, // whether each polyline is closed
  13161.         [out, retval] GraphicSet** NewPolys // The newly created set of Graphic objects.
  13162.         );
  13163.  
  13164.         /**
  13165.          * Finds the Graphic object in the collection with the given ID.
  13166.          */
  13167.     [
  13168.          helpcontext(0x10070070)
  13169.         ,helpstring("Finds the Graphic object in the collection with the given ID.")
  13170.     ]
  13171.     HRESULT  GraphicFromID(
  13172.         [in] long ID, // ID of Graphic object.
  13173.         [out, retval] IGraphic** prop // The Graphic object.
  13174.         );
  13175.  
  13176.         /**
  13177.          * Creates and adds an attribute definition Graphic object to the collection.  
  13178.          */
  13179.     [
  13180.          helpcontext(0x10070071)
  13181.         ,helpstring("Creates and adds an attribute definition Graphic object to the collection.")
  13182.         ,restricted, hidden
  13183.     ]
  13184.     HRESULT  AddAttributeDefinition(
  13185.         [in] BSTR Tag, // The text string for the attribute definition tag.
  13186.         [in] double X0, // X coordinate of attdef's starting point.
  13187.         [in] double Y0, // Y coordinate of attdef's starting point.
  13188.         [in] double Z0, // Z coordinate of attdef's starting point.
  13189.         [in] double Height, // Height of attdef object.
  13190.         [in, optional] VARIANT* Angle, // Rotation angle of attdef in radians.
  13191.         [in, optional] VARIANT* Width, // Width of attdef object.
  13192.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  13193.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  13194.         [in, optional] VARIANT* AttFlags, // ImsiAttFlag values.
  13195.         [in, optional] VARIANT* Default, // Default value of attribute.
  13196.         [in, optional] VARIANT* Prompt, // Prompt for attribute.
  13197.         [out, retval] IGraphic** prop // The newly created Graphic object.
  13198.         );
  13199.  
  13200.         /////////////////////////////////////////////////////////////////////////////
  13201.         // GraphicSet methods
  13202.  
  13203.         /**
  13204.          * Returns the index of the item in the collection.
  13205.          */
  13206.         [
  13207.              propget
  13208.             ,hidden, restricted
  13209.             ,helpcontext(0x10070072)
  13210.             ,helpstring("Returns the index of the item in the collection.")
  13211.         ]
  13212.         HRESULT  Index(
  13213.             [out, retval] long* prop // The index.
  13214.             );
  13215.  
  13216.         /**
  13217.          * Returns the name of the object, as a string.
  13218.          */
  13219.         [
  13220.              propget
  13221.             ,helpcontext(0x10070073)
  13222.             ,helpstring("Returns the name of the object, as a string.")
  13223.         ]
  13224.         HRESULT  Name(
  13225.             [out, retval] BSTR* prop // The name of the object.
  13226.             );
  13227.  
  13228.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13229.  
  13230.         /**
  13231.          * Deletes the object.
  13232.          */
  13233.         [
  13234.              helpcontext(0x10070074)
  13235.             ,helpstring("Deletes the object.")
  13236.         ]
  13237.         HRESULT  Delete(
  13238.             );
  13239.  
  13240.         /**
  13241.          * Duplicates the object and returns a reference to the new copy.
  13242.          */
  13243.         [
  13244.              helpcontext(0x10070075)
  13245.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  13246.             ,hidden, restricted
  13247.         ]
  13248.         HRESULT  Duplicate(
  13249.             [in] BSTR Name, // The name for the new GraphicSet object.
  13250.             [out, retval] GraphicSet** prop // The duplicated GraphicSet object.
  13251.             );
  13252.  
  13253.         /**
  13254.          * Sets the specific property for all graphics in the set.
  13255.          */
  13256.         [
  13257.              helpcontext(0x10070076)
  13258.             ,helpstring("Sets the specific property for all graphics in the set.")
  13259.         ]
  13260.         HRESULT  SetForAll(
  13261.             [in] VARIANT* PropertyName, // The name of property to set.
  13262.             [in] VARIANT* prop      // The Property value.
  13263.             );
  13264.  
  13265.         /**
  13266.          * Adds a Region to the collection from the Graphic objects in the collection.
  13267.          *
  13268.          */
  13269.         [
  13270.              helpcontext(0x10070076)
  13271.             ,helpstring("Adds a Region to the collection from the Graphic objects in the collection.")
  13272.             ,hidden, restricted
  13273.         ]
  13274.         HRESULT  AddRegion(
  13275.              [in, optional]    VARIANT*    pvarName
  13276.             ,[in, optional]    VARIANT*    pvarCopy
  13277.             ,[out, retval]    IGraphic** prop // The newly GraphicObject.
  13278.             );
  13279.     };
  13280.  
  13281.  
  13282.  
  13283.     /**
  13284.      * The collection of GraphicSet objects in a Drawing object.
  13285.      */
  13286.     [
  13287.          object
  13288.         ,uuid(6A481135-E531-11CF-A115-00A024158DAF)
  13289.         ,oleautomation
  13290.         ,dual
  13291.         ,helpcontext(0x10080000)
  13292.         ,helpstring("The collection of GraphicSet objects in a Drawing object.")
  13293.     ]
  13294.     interface GraphicSets : IDispatch
  13295.     {
  13296.  
  13297.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13298.  
  13299.         /**
  13300.          * Returns an Application object that represents the owner of the specified object.
  13301.          */
  13302.         [
  13303.              propget
  13304.             ,helpcontext(0x10080001)
  13305.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  13306.         ]
  13307.         HRESULT  Application(
  13308.             [out, retval] IApplication** prop // The Application object.
  13309.             );
  13310.  
  13311.         /**
  13312.          * Returns the number of items in the collection.
  13313.          */
  13314.         [
  13315.              propget
  13316.             ,helpcontext(0x10080002)
  13317.             ,helpstring("Returns the number of items in the collection.")
  13318.         ]
  13319.         HRESULT  Count(
  13320.             [out, retval] long* prop // The number of items.
  13321.             );
  13322.  
  13323.         /**
  13324.          * Returns the Drawing object that owns the object.
  13325.          */
  13326.         [
  13327.              propget
  13328.             ,helpcontext(0x10080003)
  13329.             ,helpstring("Returns the Drawing object that owns the object.")
  13330.         ]
  13331.         HRESULT  Drawing(
  13332.             [out, retval] IDrawing** prop // The Drawing object.
  13333.             );
  13334.  
  13335.         /**
  13336.          * Returns part of a collection.
  13337.          */
  13338.         [
  13339.              propget
  13340.             ,id(DISPID_VALUE)
  13341.             ,helpcontext(0x10080004)
  13342.             ,helpstring("Returns part of a collection.")
  13343.         ]
  13344.         HRESULT  Item(
  13345.             [in] VARIANT* Index, // Index of item to return.
  13346.             [out, retval] GraphicSet** prop // The item.
  13347.             );
  13348.  
  13349.         /**
  13350.          * Returns the parent object for the specified object.
  13351.          */
  13352.         [
  13353.              propget
  13354.             ,helpcontext(0x10080005)
  13355.             ,helpstring("Returns the parent object for the specified object.")
  13356.         ]
  13357.         HRESULT  Parent(
  13358.             [out, retval] IDrawing** prop // The parent object.
  13359.             );
  13360.  
  13361.         /**
  13362.          * Creates an enumeration object.
  13363.          */
  13364.         [
  13365.              propget
  13366.             ,restricted
  13367.             ,id(DISPID_NEWENUM)
  13368.             ,helpcontext(0x10080006)
  13369.             ,helpstring("Private.  Creates an enumeration object.")
  13370.         ]
  13371.         HRESULT  _NewEnum(
  13372.             [out, retval] IUnknown** prop // The enumeration object.
  13373.             );
  13374.  
  13375.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13376.  
  13377.         /**
  13378.          * Creates an empty GraphicSet object.
  13379.          */
  13380.         [
  13381.              helpcontext(0x10080007)
  13382.             ,helpstring("Creates an empty GraphicSet object.")
  13383.         ]
  13384.         HRESULT  Add(
  13385.             [in, optional] VARIANT* Name, // The name of the GraphicSet object.
  13386.             [in, optional] VARIANT* Temporary, // True if the new GraphicSet object deletes on release.
  13387.             [out, retval] GraphicSet** prop // The new GraphicSet object.
  13388.             );
  13389.     };
  13390.  
  13391.  
  13392.  
  13393.     /**
  13394.      * A point in three dimensional space.
  13395.      * <p>
  13396.      * Vertex objects can be standaolone, or contained by a Graphic object.
  13397.      * Modifying a Vertex object allows for the reshaping of the parent Graphic
  13398.      * object.
  13399.      */
  13400.     [
  13401.          object
  13402.         ,uuid(6A48110C-E531-11CF-A115-00A024158DAF)
  13403.         ,oleautomation
  13404.         ,dual
  13405.         ,helpcontext(0x10090000)
  13406.         ,helpstring("A point in three dimension space.")
  13407.     ]
  13408.     interface IVertex : IDispatch
  13409.     {
  13410.  
  13411.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13412.  
  13413.         /**
  13414.          * Returns an Application object that represents the owner of the specified object.
  13415.          */
  13416.         [
  13417.              propget
  13418.             ,helpcontext(0x10090001)
  13419.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  13420.         ]
  13421.         HRESULT  Application(
  13422.             [out, retval] IApplication** prop // The Application object.
  13423.             );
  13424.  
  13425.         /**
  13426.          * True if the Vertex object is recalculated by the RegenMethod.
  13427.          */
  13428.         [
  13429.              propget
  13430.             ,helpcontext(0x10090002)
  13431.             ,helpstring("True if the Vertex object is recalculated by the RegenMethod.")
  13432.         ]
  13433.         HRESULT  Calculated(
  13434.         [out, retval] IMSI_BOOL* prop // True if the Vertex object is recalculated by the RegenMethod.
  13435.             );
  13436.  
  13437.         /**
  13438.          * True if the Vertex object is recalculated by the RegenMethod.
  13439.          */
  13440.         [
  13441.              propput
  13442.             ,helpcontext(0x10090002)
  13443.             ,helpstring("True if the Vertex object is recalculated by the RegenMethod.")
  13444.         ]
  13445.         HRESULT  Calculated(
  13446.         [in] IMSI_BOOL prop // True if the Vertex object is recalculated by the RegenMethod.
  13447.             );
  13448.  
  13449.         /**
  13450.          * True if the Vertex object can be edited in the user interface.
  13451.          */
  13452.         [
  13453.              propget
  13454.             ,helpcontext(0x10090003)
  13455.             ,helpstring("True if the Vertex object can be edited in the user interface.")
  13456.         ]
  13457.         HRESULT  Editable(
  13458.             [out, retval] IMSI_BOOL* prop // True if the Vertex object can be edited in the user interface.
  13459.             );
  13460.  
  13461.         /**
  13462.          * True if the Vertex object can be edited in the user interface.
  13463.          */
  13464.         [
  13465.              propput
  13466.             ,helpcontext(0x10090003)
  13467.             ,helpstring("True if the Vertex object can be edited in the user interface.")
  13468.         ]
  13469.         HRESULT  Editable(
  13470.             [in] IMSI_BOOL prop // True if the Vertex object can be edited in the user interface.
  13471.             );
  13472.  
  13473.         /**
  13474.          * Returns the index of the item in the collection.
  13475.          */
  13476.         [
  13477.              propget
  13478.             ,helpcontext(0x10090004)
  13479.             ,helpstring("Returns the index of the item in the collection.")
  13480.         ]
  13481.         HRESULT  Index(
  13482.             [out, retval] long* prop // The index.
  13483.             );
  13484.  
  13485.         /**
  13486.          * True if the Vertex object can be linked to other Vertices.
  13487.          */
  13488.         [
  13489.              propget
  13490.             ,helpcontext(0x10090005)
  13491.             ,helpstring("True if the Vertex object can be linked to other Vertices.")
  13492.         ]
  13493.         HRESULT  Linkable(
  13494.             [out, retval] IMSI_BOOL* prop // True if the Vertex object can be linked to other Vertices.
  13495.             );
  13496.  
  13497.         /**
  13498.          * True if the Vertex object can be linked to other Vertices.
  13499.          */
  13500.         [
  13501.              propput
  13502.             ,helpcontext(0x10090005)
  13503.             ,helpstring("True if the Vertex object can be linked to other Vertices.")
  13504.         ]
  13505.         HRESULT  Linkable(
  13506.             [in] IMSI_BOOL prop // True if the Vertex object can be linked to other Vertices.
  13507.             );
  13508.  
  13509.         /**
  13510.          * Returns the parent object for the specified object.
  13511.          */
  13512.         [
  13513.              propget
  13514.             ,helpcontext(0x10090006)
  13515.             ,helpstring("Returns the parent object for the specified object.")
  13516.         ]
  13517.         HRESULT  Parent(
  13518.             [out, retval] IDispatch** prop // The parent object.
  13519.             );
  13520.  
  13521.         /**
  13522.          * True if the segment from the previous Vertex object to this one should be drawn.
  13523.          */
  13524.         [
  13525.              propget
  13526.             ,helpcontext(0x10090007)
  13527.             ,helpstring("True if the segment from the previous Vertex object to this one should be drawn.")
  13528.         ]
  13529.         HRESULT  PenDown(
  13530.             [out, retval] IMSI_BOOL* prop // True if the segment from the previous Vertex object to this one should be drawn.
  13531.             );
  13532.  
  13533.         /**
  13534.          * True if the segment from the previous Vertex object to this one should be drawn.
  13535.          */
  13536.         [
  13537.              propput
  13538.             ,helpcontext(0x10090007)
  13539.             ,helpstring("True if the segment from the previous Vertex object to this one should be drawn.")
  13540.         ]
  13541.         HRESULT  PenDown(
  13542.             [in] IMSI_BOOL prop // True if the segment from the previous Vertex object to this one should be drawn.
  13543.             );
  13544.  
  13545.         /**
  13546.          * True if the Vertex object can be selected in the user interface.
  13547.          */
  13548.         [
  13549.              propget
  13550.             ,helpcontext(0x10090008)
  13551.             ,helpstring("True if the Vertex object can be selected in the user interface.")
  13552.         ]
  13553.         HRESULT  Selectable(
  13554.             [out, retval] IMSI_BOOL* prop // True if the Vertex object can be selected in the user interface.
  13555.             );
  13556.  
  13557.         /**
  13558.          * True if the Vertex object can be selected in the user interface.
  13559.          */
  13560.         [
  13561.              propput
  13562.             ,helpcontext(0x10090008)
  13563.             ,helpstring("True if the Vertex object can be selected in the user interface.")
  13564.         ]
  13565.         HRESULT  Selectable(
  13566.             [in] IMSI_BOOL prop // True if the Vertex object can be selected in the user interface.
  13567.             );
  13568.  
  13569.         /**
  13570.          * True if the Vertex object can be snapped to in the user interface.
  13571.          */
  13572.         [
  13573.              propget
  13574.             ,helpcontext(0x10090009)
  13575.             ,helpstring("True if the Vertex object can be snapped to in the user interface.")
  13576.         ]
  13577.         HRESULT  Snappable(
  13578.             [out, retval] IMSI_BOOL* prop // True if the Vertex object can be snapped to in the user interface.
  13579.             );
  13580.  
  13581.         /**
  13582.          * True if the Vertex object can be snapped to in the user interface.
  13583.          */
  13584.         [
  13585.              propput
  13586.             ,helpcontext(0x10090009)
  13587.             ,helpstring("True if the Vertex object can be snapped to in the user interface.")
  13588.         ]
  13589.         HRESULT  Snappable(
  13590.             [in] IMSI_BOOL prop // True if the Vertex object can be snapped to in the user interface.
  13591.             );
  13592.  
  13593.         /**
  13594.          * The x component of the Vertex object's location.
  13595.          */
  13596.         [
  13597.              propget
  13598.             ,helpcontext(0x1009000A)
  13599.             ,helpstring("The x component of the Vertex object's location.")
  13600.         ]
  13601.         HRESULT  X(
  13602.             [out, retval] double* prop // The x component of the Vertex object's location.
  13603.             );
  13604.  
  13605.         /**
  13606.          * The x component of the Vertex object's location.
  13607.          */
  13608.         [
  13609.              propput
  13610.             ,helpcontext(0x1009000A)
  13611.             ,helpstring("The x component of the Vertex object's location.")
  13612.         ]
  13613.         HRESULT  X(
  13614.             [in] double prop // The x component of the Vertex object's location.
  13615.             );
  13616.  
  13617.         /**
  13618.          * The y component of the Vertex object's location.
  13619.          */
  13620.         [
  13621.              propget
  13622.             ,helpcontext(0x1009000B)
  13623.             ,helpstring("The y component of the Vertex object's location.")
  13624.         ]
  13625.         HRESULT  Y(
  13626.             [out, retval] double* prop // The y component of the Vertex object's location.
  13627.             );
  13628.  
  13629.         /**
  13630.          * The y component of the Vertex object's location.
  13631.          */
  13632.         [
  13633.              propput
  13634.             ,helpcontext(0x1009000B)
  13635.             ,helpstring("The y component of the Vertex object's location.")
  13636.         ]
  13637.         HRESULT  Y(
  13638.             [in] double prop // The y component of the Vertex object's location.
  13639.             );
  13640.  
  13641.         /**
  13642.          * The z component of the Vertex object's location.
  13643.          */
  13644.         [
  13645.              propget
  13646.             ,helpcontext(0x1009000C)
  13647.             ,helpstring("The z component of the Vertex object's location.")
  13648.         ]
  13649.         HRESULT  Z(
  13650.             [out, retval] double* prop // The z component of the Vertex object's location.
  13651.             );
  13652.  
  13653.         /**
  13654.          * The z component of the Vertex object's location.
  13655.          */
  13656.         [
  13657.              propput
  13658.             ,helpcontext(0x1009000C)
  13659.             ,helpstring("The z component of the Vertex object's location.")
  13660.         ]
  13661.         HRESULT  Z(
  13662.             [in] double prop // The z component of the Vertex object's location.
  13663.             );
  13664.  
  13665.         /**
  13666.          * Returns the internal handle associated with the Vertex object.
  13667.          * Private.
  13668.          */
  13669.         [
  13670.              propget
  13671.             ,restricted
  13672.             ,helpcontext(0x1009000D)
  13673.             ,helpstring("Private.  Returns the internal handle associated with the Vertex object.")
  13674.         ]
  13675.         HRESULT  _Handle(
  13676.             [out, retval] long* prop // The internal handle.
  13677.             );
  13678.  
  13679.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13680.  
  13681.         /**
  13682.          * Deletes the object.
  13683.          */
  13684.         [
  13685.              helpcontext(0x1009000E)
  13686.             ,helpstring("Deletes the object.")
  13687.         ]
  13688.         HRESULT  Delete(
  13689.             );
  13690.  
  13691.         /**
  13692.          * Duplicates the object and returns a reference to the new copy.
  13693.          */
  13694.         [
  13695.              helpcontext(0x1009000F)
  13696.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  13697.         ]
  13698.         HRESULT  Duplicate(
  13699.             [out, retval] IVertex** prop // The duplicated Vertex object.
  13700.             );
  13701.  
  13702.         [
  13703.              propget
  13704.             ,helpcontext(0x10090010)
  13705.             ,helpstring("True if the vertex is Bulge (belong to bulge polyline")
  13706.         ]
  13707.         
  13708.         HRESULT  Bulge(
  13709.             [out, retval] IMSI_BOOL *pVal
  13710.             );
  13711.  
  13712.         [
  13713.              propput
  13714.             ,helpcontext(0x10090010)
  13715.             ,helpstring("True if the vertex is Bulge (belong to bulge polyline")
  13716.         ]
  13717.         HRESULT  Bulge(
  13718.             [in] IMSI_BOOL newVal
  13719.             );
  13720.  
  13721.         [
  13722.              propget
  13723.             ,helpcontext(0x10090011)
  13724.             ,helpstring("True if the vertex is start  segement width (ACAD polyline")
  13725.         ]
  13726.         
  13727.         HRESULT  StartWidth(
  13728.             [out, retval] IMSI_BOOL *pVal
  13729.             );
  13730.  
  13731.         [
  13732.              propput
  13733.             ,helpcontext(0x10090011)
  13734.             ,helpstring("True if the vertex is start  segement width (ACAD polyline")
  13735.         ]
  13736.         HRESULT  StartWidth(
  13737.             [in] IMSI_BOOL newVal
  13738.             );
  13739.  
  13740.         [
  13741.              propget
  13742.             ,helpcontext(0x10090011)
  13743.             ,helpstring("True if the vertex is end segement width (ACAD polyline")
  13744.         ]
  13745.         
  13746.         HRESULT  EndWidth(
  13747.             [out, retval] IMSI_BOOL *pVal
  13748.             );
  13749.  
  13750.         [
  13751.              propput
  13752.             ,helpcontext(0x10090011)
  13753.             ,helpstring("True if the vertex is end segement width (ACAD polyline")
  13754.         ]
  13755.         HRESULT  EndWidth(
  13756.             [in] IMSI_BOOL newVal
  13757.             );
  13758.  
  13759.         [
  13760.              propget
  13761.             ,helpcontext(0x10090012)
  13762.             ,helpstring("Returns the Vertex object's database ID.")
  13763.         ]
  13764.         
  13765.         HRESULT  ID(
  13766.             [out, retval] long *pVal
  13767.             );
  13768.  
  13769.         [
  13770.              propput
  13771.             ,helpcontext(0x10090012)
  13772.             ,helpstring("Sets the Vertex object's database ID.")
  13773.         ]
  13774.         HRESULT  ID(
  13775.             [in] long newVal
  13776.             );
  13777.     };
  13778.         //%page
  13779.  
  13780.     /**
  13781.      * The collection of Vertex objects contained in a Graphic object.
  13782.      * <p>
  13783.      * Enumerates the Vertex objects in the collection.
  13784.      * Every Graphic object owns a Vertices collection, which define the geometry
  13785.      * of the Graphic object.
  13786.      */
  13787.     [
  13788.          object
  13789.         ,uuid(6A48110D-E531-11CF-A115-00A024158DAF)
  13790.         ,oleautomation
  13791.         ,dual
  13792.         ,helpcontext(0x100A0000)
  13793.         ,helpstring("A collection of Vertex objects.")
  13794.     ]
  13795.     interface Vertices : IDispatch
  13796.     {
  13797.  
  13798.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13799.  
  13800.         /**
  13801.          * Returns an Application object that represents the owner of the specified object.
  13802.          */
  13803.         [
  13804.              propget
  13805.             ,helpcontext(0x100A0001)
  13806.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  13807.         ]
  13808.         HRESULT  Application(
  13809.             [out, retval] IApplication** prop // The Application object.
  13810.             );
  13811.  
  13812.         /**
  13813.          * Returns the number of items in the collection.
  13814.          */
  13815.         [
  13816.              propget
  13817.             ,helpcontext(0x100A0002)
  13818.             ,helpstring("Returns the number of items in the collection.")
  13819.         ]
  13820.         HRESULT  Count(
  13821.             [out, retval] long* prop // The number of items.
  13822.             );
  13823.  
  13824.         /**
  13825.          * Returns part of a collection.
  13826.          */
  13827.         [
  13828.              propget
  13829.             ,id(DISPID_VALUE)
  13830.             ,helpcontext(0x100A0003)
  13831.             ,helpstring("Returns part of a collection.")
  13832.         ]
  13833.         HRESULT  Item(
  13834.             [in] VARIANT* Index, // Index of item to return.
  13835.             [out, retval] IVertex** prop // The item.
  13836.             );
  13837.  
  13838.         /**
  13839.          * Returns the parent object for the specified object.
  13840.          */
  13841.         [
  13842.              propget
  13843.             ,helpcontext(0x100A0004)
  13844.             ,helpstring("Returns the parent object for the specified object.")
  13845.         ]
  13846.         HRESULT  Parent(
  13847.             [out, retval] IDispatch** prop // The parent object.
  13848.             );
  13849.  
  13850.         /**
  13851.          * Creates an enumeration object.
  13852.          */
  13853.         [
  13854.              propget
  13855.             ,restricted
  13856.             ,id(DISPID_NEWENUM)
  13857.             ,helpcontext(0x100A0005)
  13858.             ,helpstring("Private.  Creates an enumeration object.")
  13859.         ]
  13860.         HRESULT  _NewEnum(
  13861.             [out, retval] IUnknown** prop // The enumeration object.
  13862.             );
  13863.  
  13864.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13865.  
  13866.         /*
  13867.          * Creates a new Vertex object and adds it to the collection.
  13868.          */
  13869.         [
  13870.              helpcontext(0x100A0006)
  13871.             ,helpstring("Creates a new Vertex object and adds it to the collection.")
  13872.         ]
  13873.         HRESULT  Add(
  13874.             [in, optional] VARIANT* X, // X coordinate of the vertex.
  13875.             [in, optional] VARIANT* Y, // Y coordinate of the vertex.
  13876.             [in, optional] VARIANT* Z, // Z coordinate of the vertex.
  13877.             [in, optional] VARIANT* PenDown, // True if the segment to this vertex is drawn.
  13878.             [in, optional] VARIANT* Selectable, // True if the vertex can be selected.
  13879.             [in, optional] VARIANT* Snappable, // True if the vertex can be snapped to.
  13880.             [in, optional] VARIANT* Editable, // True if the vertex can be edited.
  13881.             [in, optional] VARIANT* Linkable, // True if the vertex can be linked to.
  13882.             [in, optional] VARIANT* Calculated, // True if the Vertex object is recalculated by the RegenMethod.
  13883.             [in, optional] VARIANT* Before, // Vertex object or index to follow this one.
  13884.             [in, optional] VARIANT* After, // Vertex object or index to precede this one.
  13885.             [out, retval] IVertex** prop // The newly created Vertex object.
  13886.             );
  13887.  
  13888.         /**
  13889.          * Creates a new Vertex object and closes the collection's Graphic object.
  13890.          */
  13891.         [
  13892.              helpcontext(0x100A0007)
  13893.             ,helpstring("Creates a new Vertex object and closes the collection's Graphic object.")
  13894.         ]
  13895.         HRESULT  AddClose(
  13896.             [in, optional] VARIANT* PenDown, // True if the segment to this vertex is drawn.
  13897.             [in, optional] VARIANT* Selectable, // True if the vertex can be selected.
  13898.             [in, optional] VARIANT* Snappable, // True if the vertex can be snapped to.
  13899.             [in, optional] VARIANT* Editable, // True if the vertex can be edited.
  13900.             [in, optional] VARIANT* Linkable, // True if the vertex can be linked to.
  13901.             [in, optional] VARIANT* Calculated, // True if the Vertex object is recalculated by the RegenMethod.
  13902.             [out, retval] IVertex** prop // The newly created Vertex object.
  13903.             );
  13904.  
  13905.         /**
  13906.          * Adds an existing Vertex object to the collection.
  13907.          */
  13908.         [
  13909.              helpcontext(0x100A0008)
  13910.             ,helpstring("Adds an existing Vertex object to the collection.")
  13911.         ]
  13912.         HRESULT  AddVertex(
  13913.             [in] IVertex* Vertex, // The Vertex object to be added.
  13914.             [in, optional] VARIANT* Before, // Vertex object or index to follow this one.
  13915.             [in, optional] VARIANT* After // Vertex object or index to precede this one.
  13916.             );
  13917.  
  13918.         /**
  13919.          * Deletes the collection's Vertex objects.
  13920.          */
  13921.         [
  13922.              helpcontext(0x100A0009)
  13923.             ,helpstring("Deletes the collection's Vertex objects.")
  13924.         ]
  13925.         HRESULT  Clear(
  13926.             [in, optional] VARIANT* Types // If supplied, the types of Vertex objects to delete.
  13927.             );
  13928.  
  13929.         /**
  13930.          * Removes an item from the collection.
  13931.          */
  13932.         [
  13933.              helpcontext(0x100A000A)
  13934.             ,helpstring("Removes a Vertex object from the collection.")
  13935.         ]
  13936.         HRESULT  Remove(
  13937.             [in] VARIANT* Index, // The index of item to be removed.
  13938.             [out, retval] IVertex** prop // The Vertex object that was removed.
  13939.             );
  13940.  
  13941.         /**
  13942.          * Returns the index within the Vertices collection of the specified Vertex.
  13943.          * Private.
  13944.          */
  13945.         [
  13946.              restricted
  13947.             ,helpcontext(0x100A000B)
  13948.             ,helpstring("Private.  Returns the index within the Vertices collection of the specified Vertex.")
  13949.         ]
  13950.         HRESULT  _FindIndex(
  13951.             [in] long v, // The internal handle.
  13952.             [out, retval] long* prop // The index.
  13953.             );
  13954.  
  13955.         /*
  13956.          * Returns the current coordinate system for items.
  13957.          */
  13958.         [
  13959.              propput
  13960.             ,helpcontext(0x100A000C)
  13961.             ,helpstring("True if items should be tronsform to world coordinate system for items.")
  13962.         ]
  13963.         HRESULT  UseWorldCS(
  13964.             [in] IMSI_BOOL bUseWorldCS
  13965.             );
  13966.  
  13967.  
  13968.         /*
  13969.          * Sets the world coordinate system for items.
  13970.          */
  13971.         [
  13972.              propget
  13973.             ,helpcontext(0x100A000C)
  13974.             ,helpstring("True if items are transforming to world coordinate system for items."
  13975.         )
  13976.         ]
  13977.         HRESULT  UseWorldCS(
  13978.             [out, retval] IMSI_BOOL* pbUseWorldCS
  13979.             );
  13980.  
  13981.     };
  13982.  
  13983.     /**
  13984.      * A named attribute of an object.
  13985.      * Can be an attribute of an Application object, a Drawing object, a Graphic object.
  13986.      * <P>
  13987.      * See the following pages for information on the names for standard properties:
  13988.      * <UL>
  13989.      * <LI><A HREF="appprops.html">Application Properties</A>
  13990.      * <LI><A HREF="dwgprops.html">Drawing Properties</A>
  13991.      * <LI><A HREF="grfprops.html">Graphic Properties</A>
  13992.      * </UL>
  13993.      */
  13994.     [
  13995.          object
  13996.         ,uuid(6A48110E-E531-11CF-A115-00A024158DAF)
  13997.         ,oleautomation
  13998.         ,dual
  13999.         ,helpcontext(0x100B0000)
  14000.         ,helpstring("A named attribute of an object.")
  14001.     ]
  14002.     interface Property : IDispatch
  14003.     {
  14004.  
  14005.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  14006.  
  14007.         /**
  14008.          * Returns an Application object that represents the owner of the specified object.
  14009.          */
  14010.         [
  14011.              propget
  14012.             ,helpcontext(0x100B0001)
  14013.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  14014.         ]
  14015.         HRESULT  Application(
  14016.             [out, retval] IApplication** prop // The Application object.
  14017.             );
  14018.  
  14019.         /**
  14020.          * True if the object is built-in.
  14021.          */
  14022.         [
  14023.              propget
  14024.             ,helpcontext(0x100B0002)
  14025.             ,helpstring("True if the object is built-in.")
  14026.         ]
  14027.         HRESULT  Builtin(
  14028.             [out, retval] IMSI_BOOL* prop // True if the object is built-in.
  14029.             );
  14030.  
  14031.         /**
  14032.          * Returns the type of the Property object's container.
  14033.          */
  14034.         [
  14035.              propget
  14036.             ,helpcontext(0x100B0003)
  14037.             ,helpstring("Returns the type of the Property object's container.")
  14038.         ]
  14039.         HRESULT  Domain(
  14040.             [out, retval] ImsiDomain* prop // The type of the container.
  14041.             );
  14042.  
  14043.         /**
  14044.          * Returns the Property object's internal ID number.
  14045.          */
  14046.         [
  14047.              propget
  14048.             ,helpcontext(0x100B0004)
  14049.             ,helpstring("Returns the Property object's internal ID number.")
  14050.         ]
  14051.         HRESULT  ID(
  14052.             [out, retval] long* prop // The internal ID number.
  14053.             );
  14054.  
  14055.         /**
  14056.          * Returns the index of the item in the collection.
  14057.          */
  14058.         [
  14059.              propget
  14060.             ,helpcontext(0x100B0005)
  14061.             ,helpstring("Returns the index of the item in the collection.")
  14062.         ]
  14063.         HRESULT  Index(
  14064.             [out, retval] long* prop // The index.
  14065.             );
  14066.  
  14067.         /**
  14068.          * Returns the name of the object, as a string.
  14069.          */
  14070.         [
  14071.              propget
  14072.             ,helpcontext(0x100B0006)
  14073.             ,helpstring("Returns the name of the object, as a string.")
  14074.         ]
  14075.         HRESULT  Name(
  14076.             [out, retval] BSTR* prop // The name of the object.
  14077.             );
  14078.  
  14079.         /**
  14080.          * Returns the parent object for the specified object.
  14081.          */
  14082.         [
  14083.              propget
  14084.             ,helpcontext(0x100B0007)
  14085.             ,helpstring("Returns the parent object for the specified object.")
  14086.         ]
  14087.         HRESULT  Parent(
  14088.             [out, retval] IDispatch** prop // The parent object.
  14089.             );
  14090.  
  14091.         /**
  14092.          * True if the value of the Property object cannot be modified.
  14093.          */
  14094.         [
  14095.              propget
  14096.             ,helpcontext(0x100B0008)
  14097.             ,helpstring("True if the value of the Property object cannot be modified.")
  14098.         ]
  14099.         HRESULT  ReadOnly(
  14100.             [out, retval] IMSI_BOOL* prop // True if the value of the Property object cannot be modified.
  14101.             );
  14102.  
  14103.         /**
  14104.          * True if the value of the Property object cannot be modified.
  14105.          */
  14106.         [
  14107.              propput
  14108.             ,helpcontext(0x100B0008)
  14109.             ,helpstring("True if the value of the Property object cannot be modified.")
  14110.         ]
  14111.         HRESULT  ReadOnly(
  14112.             [in] IMSI_BOOL prop // True if the value of the Property object cannot be modified.
  14113.             );
  14114.  
  14115.         /**
  14116.          * Returns the type of the Property object.
  14117.          * The value is specified as a VARTYPE enumeration.
  14118.          */
  14119.         [
  14120.              propget
  14121.             ,helpcontext(0x100B0009)
  14122.             ,helpstring("Returns the type of the Property object.")
  14123.         ]
  14124.         HRESULT  Type(
  14125.             [out, retval] SHORT* prop // Returns the type of the Property object.
  14126.             );
  14127.  
  14128.         /**
  14129.          * Returns the value of the Property object.
  14130.          */
  14131.         [
  14132.              propget
  14133.             ,id(DISPID_VALUE)
  14134.             ,helpcontext(0x100B000A)
  14135.             ,helpstring("Returns the value of the Property object.")
  14136.         ]
  14137.         HRESULT  Value(
  14138. #if (_USE_LCID)
  14139.              [in, lcid]    long lcid
  14140. #else
  14141.              [in, optional]    long lcid
  14142. #endif
  14143.             ,[out, retval] VARIANT* prop // The value, as a variant.
  14144.             );
  14145.  
  14146.         /**
  14147.          * Sets the value of the Property object.
  14148.          */
  14149.         [
  14150.              propput
  14151.             ,id(DISPID_VALUE)
  14152.             ,helpcontext(0x100B000A)
  14153.             ,helpstring("Sets the value of the Property object.")
  14154.         ]
  14155.         HRESULT  Value(
  14156. #if (_USE_LCID)
  14157.              [in, lcid]    long lcid
  14158. #else
  14159.              [in, optional]    long lcid
  14160. #endif
  14161.             ,[in] VARIANT* prop // The value, set by reference.
  14162.             );
  14163.  
  14164.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  14165.  
  14166.         /**
  14167.          * Deletes the object.
  14168.          */
  14169.         [
  14170.              helpcontext(0x100B000B)
  14171.             ,helpstring("Deletes the object.")
  14172.         ]
  14173.         HRESULT  Delete(
  14174.             );
  14175.  
  14176.         /**
  14177.          * Duplicates the object and returns a reference to the new copy.
  14178.          */
  14179.         [
  14180.              helpcontext(0x100B000C)
  14181.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  14182.             ,restricted, hidden
  14183.         ]
  14184.         HRESULT  Duplicate(
  14185.             [in] BSTR Name, // A name for the new Property object.
  14186.             [out, retval] Property** prop // The duplicated Property object.
  14187.             );
  14188.  
  14189.         /**
  14190.          * True if the object is an attribute.
  14191.          */
  14192.         [
  14193.              propget
  14194.             ,helpcontext(0x100B000D)
  14195.             ,helpstring("True if the object is an attribute.")
  14196.         ]
  14197.         HRESULT  IsAttribute(
  14198.             [out, retval] IMSI_BOOL* prop // True if the object is an attribute.
  14199.             );
  14200.     };
  14201.  
  14202.  
  14203.  
  14204.     /**
  14205.      * A collection of Property objects.
  14206.      * <P>
  14207.      * See the following pages for information on the names for standard properties:
  14208.      * <UL>
  14209.      * <LI><A HREF="appprops.html">Application Properties</A>
  14210.      * <LI><A HREF="dwgprops.html">Drawing Properties</A>
  14211.      * <LI><A HREF="grfprops.html">Graphic Properties</A>
  14212.      * </UL>
  14213.      */
  14214.     [
  14215.          object
  14216.         ,uuid(6A48110F-E531-11CF-A115-00A024158DAF)
  14217.         ,oleautomation
  14218.         ,dual
  14219.         ,helpcontext(0x100C0000)
  14220.         ,helpstring("A collection of TurboCAD properties.")
  14221.     ]
  14222.     interface Properties : IDispatch
  14223.     {
  14224.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  14225.  
  14226.         /**
  14227.          * Returns an Application object that represents the owner of the specified object.
  14228.          */
  14229.         [
  14230.              propget
  14231.             ,helpcontext(0x100C0001)
  14232.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  14233.         ]
  14234.         HRESULT  Application(
  14235.             [out, retval] IApplication** prop // The Application object.
  14236.             );
  14237.  
  14238.         /**
  14239.          * Returns the number of items in the collection.
  14240.          */
  14241.         [
  14242.              propget
  14243.             ,helpcontext(0x100C0002)
  14244.             ,helpstring("Returns the number of items in the collection.")
  14245.         ]
  14246.         HRESULT  Count(
  14247.             [out, retval] long* prop // The number of items.
  14248.             );
  14249.  
  14250.         /**
  14251.          * Returns part of a collection.
  14252.          */
  14253.         [
  14254.              propget
  14255.             ,id(DISPID_VALUE)
  14256.             ,helpcontext(0x100C0003)
  14257.         ,
  14258.         helpstring("Returns part of a collection.")]
  14259.         HRESULT  Item(
  14260.             [in] VARIANT* Index, // Index of item to return.
  14261.             [out, retval] Property** prop // The item.
  14262.             );
  14263.  
  14264.         /**
  14265.          * Returns the parent object for the specified object.
  14266.          */
  14267.         [
  14268.              propget
  14269.             ,helpcontext(0x100C0004)
  14270.             ,helpstring("Returns the parent object for the specified object.")
  14271.         ]
  14272.         HRESULT  Parent(
  14273.             [out, retval] IDispatch** prop // The parent object.
  14274.             );
  14275.  
  14276.         /**
  14277.          * Creates an enumeration object.
  14278.          */
  14279.         [
  14280.              propget
  14281.             ,restricted
  14282.             ,id(DISPID_NEWENUM)
  14283.             ,helpcontext(0x100C0005)
  14284.             ,helpstring("Private.  Creates an enumeration object.")
  14285.         ]
  14286.         HRESULT  _NewEnum(
  14287.             [out, retval] IUnknown** prop // The enumeration object.
  14288.             );
  14289.  
  14290.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  14291.  
  14292.         /**
  14293.          * Creates a new Property object and adds it to the collection, optionally setting a value.
  14294.          */
  14295.         [
  14296.              helpcontext(0x100C0006)
  14297.             ,helpstring("Creates a new Property object and adds it to the collection, optionally setting a value.")
  14298.         ]
  14299.         HRESULT  Add(
  14300.             [in] BSTR Name, // Name of the new Property object.
  14301.             [in, optional] VARIANT* Value, // The value of the new Property object, by reference.
  14302.             [in, optional] VARIANT* ReadOnly, // True if the new Property object's value cannot be modified.
  14303.             [in, optional] VARIANT* ID, // Internal ID.
  14304.             [out, retval] Property** prop // The newly created Property object.
  14305.             );
  14306.  
  14307.         /**
  14308.          * Display property editing dialog or browser.
  14309.          * Only implemented on Graphic properties.
  14310.          */
  14311.         [
  14312.              helpcontext(0x100C0007)
  14313.             ,helpstring("Display property editing dialog or browser.")
  14314.             ,restricted, hidden
  14315.         ]
  14316.         HRESULT  Edit(
  14317.             );
  14318.  
  14319.         /**
  14320.          * Returns the ids, names and types of the collection.
  14321.          * Some remarks.
  14322.          */
  14323.         [
  14324.              helpcontext(0x100C0008)
  14325.             ,helpstring("Returns the ids, names and types of the collection.")
  14326.         ]
  14327.         HRESULT  Enumerate(
  14328.             [out] VARIANT* IDs, // An array of longs.
  14329.             [out] VARIANT* Names, // An array of strings.
  14330.             [out] VARIANT* Types // An array of longs.
  14331.             );
  14332.     };
  14333.  
  14334.  
  14335.  
  14336.     /**
  14337.      * An object which controls the mapping from view space to the client area of a Window.
  14338.      */
  14339.     [
  14340.          object
  14341.         ,uuid(6A481110-E531-11CF-A115-00A024158DAF)
  14342.         ,oleautomation
  14343.         ,dual
  14344.         ,helpcontext(0x100D0000)
  14345.         ,helpstring("An object which controls the mapping from view space to the client area of a Window.")
  14346.     ]
  14347.     interface View : IDispatch
  14348.     {
  14349.  
  14350.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  14351.  
  14352.         /**
  14353.          * Returns an Application object that represents the owner of the specified object.
  14354.          */
  14355.         [
  14356.              propget
  14357.             ,helpcontext(0x100D0001)
  14358.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  14359.         ]
  14360.         HRESULT  Application(
  14361.             [out, retval] IApplication** prop // The Application object.
  14362.             );
  14363.  
  14364.         /**
  14365.          * Returns the camera that controls the View object.
  14366.          */
  14367.         [
  14368.              propget
  14369.             ,helpcontext(0x100D0002)
  14370.             ,helpstring("Returns the Camera object that controls the View object.")
  14371.         ]
  14372.         HRESULT  Camera(
  14373.             [out, retval] ICamera** prop // The Camera object.
  14374.             );
  14375.  
  14376.         /**
  14377.          * Sets the camera that controls the View object.
  14378.          */
  14379.         [
  14380.              propput
  14381.             ,helpcontext(0x100D0002)
  14382.             ,helpstring("Sets the Camera object that controls the View object.")
  14383.         ]
  14384.         HRESULT  Camera(
  14385.             [in] ICamera* prop // The Camera object.
  14386.             );
  14387.  
  14388.         /**
  14389.          * True if the View object's extents are centered within the Window.
  14390.          */
  14391.         [
  14392.              propget
  14393.             ,helpcontext(0x100D0003)
  14394.             ,helpstring("True if the View object's extents are centered within the Window.")
  14395.         ]
  14396.         HRESULT  CenterOnExtents(
  14397.             [out, retval] IMSI_BOOL* prop // True if extents are centered.
  14398.             );
  14399.  
  14400.         /**
  14401.          * True if the View object's extents are centered within the Window.
  14402.          */
  14403.         [
  14404.              propput
  14405.             ,helpcontext(0x100D0003)
  14406.             ,helpstring("True if the View object's extents are centered within the Window.")
  14407.         ]
  14408.         HRESULT  CenterOnExtents(
  14409.             [in] IMSI_BOOL prop // True if extents are centered.
  14410.             );
  14411.  
  14412.         /**
  14413.          * Returns the DC associated with this View object.
  14414.          */
  14415.         [
  14416.              propget
  14417.             ,helpcontext(0x100D0004)
  14418.             ,helpstring("Returns the DC associated with this View object.")
  14419.         ]
  14420.         HRESULT  DC(
  14421.             [out, retval] long* prop // The DC.
  14422.             );
  14423.  
  14424.         /**
  14425.          * Sets the DC associated with this View object.
  14426.          */
  14427.         [
  14428.              propput
  14429.             ,helpcontext(0x100D0004)
  14430.             ,helpstring("Sets the DC associated with this View object.")
  14431.         ]
  14432.         HRESULT  DC(
  14433.             [in] long prop // The DC.
  14434.             );
  14435.  
  14436.         /**
  14437.          * Returns the Drawing object that owns the object.
  14438.          */
  14439.         [
  14440.              propget
  14441.             ,helpcontext(0x100D0005)
  14442.             ,helpstring("Returns the Drawing object that owns the object.")
  14443.         ]
  14444.         HRESULT  Drawing(
  14445.             [out, retval] IDrawing** prop // The Drawing object.
  14446.             );
  14447.  
  14448.         /**
  14449.          * True if the View object's mapping is isotropic.
  14450.          */
  14451.         [
  14452.              propget
  14453.             ,helpcontext(0x100D0006)
  14454.             ,helpstring("True if the View object's mapping is isotropic.")
  14455.         ]
  14456.         HRESULT  FixedAspectRatio(
  14457.             [out, retval] IMSI_BOOL* prop // True if mapping is isotropic.
  14458.             );
  14459.  
  14460.         /**
  14461.          * True if the View object's mapping is isotropic.
  14462.          */
  14463.         [
  14464.              propput
  14465.             ,helpcontext(0x100D0006)
  14466.             ,helpstring("True if the View object's mapping is isotropic.")
  14467.         ]
  14468.         HRESULT  FixedAspectRatio(
  14469.             [in] IMSI_BOOL prop // True if mapping is isotropic.
  14470.             );
  14471.  
  14472.         /**
  14473.          * The HWND value of the View object's display Window.
  14474.          */
  14475.         [
  14476.              propget
  14477.             ,helpcontext(0x100D0007)
  14478.             ,helpstring("The HWND value of the View object's display Window.")
  14479.         ]
  14480.         HRESULT  HWND(
  14481.             [out, retval] long* prop // The HWND value.
  14482.             );
  14483.  
  14484.         /**
  14485.          * The HWND value of the View object's display Window.
  14486.          */
  14487.         [
  14488.              propput
  14489.             ,helpcontext(0x100D0007)
  14490.             ,helpstring("The HWND value of the View object's display Window.")
  14491.         ]
  14492.         HRESULT  HWND(
  14493.             [in] long prop // The HWND value.
  14494.             );
  14495.  
  14496.         /**
  14497.          * Returns the index of the item in the collection.
  14498.          */
  14499.         [
  14500.              propget
  14501.             ,helpcontext(0x100D0008)
  14502.             ,helpstring("Returns the index of the item in the collection.")
  14503.         ]
  14504.         HRESULT  Index(
  14505.             [out, retval] long* prop // The index.
  14506.             );
  14507.  
  14508.         /**
  14509.          * Returns the mapping mode of the View object's display Window.
  14510.          */
  14511.         [
  14512.              propget
  14513.             ,helpcontext(0x100D0009)
  14514.             ,helpstring("Returns the mapping mode of the View object's display Window.")
  14515.         ]
  14516.         HRESULT  MappingMode(
  14517.             [out, retval] long* prop // The Windows mapping mode.
  14518.             );
  14519.  
  14520.         /**
  14521.          * Sets the mapping mode of the View object's display Window.
  14522.          */
  14523.         [
  14524.              propput
  14525.             ,helpcontext(0x100D0009)
  14526.             ,helpstring("Sets the mapping mode of the View object's display Window.")
  14527.         ]
  14528.         HRESULT  MappingMode(
  14529.             [in] long prop // The Windows mapping mode.
  14530.             );
  14531.  
  14532.         /**
  14533.          * True if the View object's display window is inset within its client rectangle.
  14534.          */
  14535.         [
  14536.              propget
  14537.             ,helpcontext(0x100D000A)
  14538.             ,helpstring("True if the View object's display window is inset within its client rectangle.")
  14539.         ]
  14540.         HRESULT  Margins(
  14541.             [out, retval] IMSI_BOOL* prop // True if window is inset.
  14542.             );
  14543.  
  14544.         /**
  14545.          * True if the View object's display window is inset within its client rectangle.
  14546.          */
  14547.         [
  14548.              propput
  14549.             ,helpcontext(0x100D000A)
  14550.             ,helpstring("True if the View object's display window is inset within its client rectangle.")
  14551.         ]
  14552.         HRESULT  Margins(
  14553.             [in] IMSI_BOOL prop // True if window is inset.
  14554.             );
  14555.  
  14556.         /**
  14557.          * Returns the name of the object, as a string.
  14558.          */
  14559.         [
  14560.              propget
  14561.             ,helpcontext(0x100D000B)
  14562.             ,helpstring("Returns the name of the object, as a string.")
  14563.             ,restricted, hidden
  14564.         ]
  14565.         HRESULT  Name(
  14566.             [out, retval] BSTR* prop // The name of the object.
  14567.             );
  14568.  
  14569.         /**
  14570.          * Sets the name of the object.
  14571.          */
  14572.         [
  14573.              propput
  14574.             ,helpcontext(0x100D000B)
  14575.             ,helpstring("Sets the name of the object.")
  14576.             ,restricted, hidden
  14577.         ]
  14578.         HRESULT  Name(
  14579.             [in] BSTR prop // The name of the object.
  14580.             );
  14581.  
  14582.         /**
  14583.          * The height in the View object's screen space.
  14584.          */
  14585.         [
  14586.              propget
  14587.             ,helpcontext(0x100D000C)
  14588.             ,helpstring("The height in the View object's screen space.")
  14589.         ]
  14590.         HRESULT  ScreenHeight(
  14591.             [out, retval] double* prop // Height of screen space.
  14592.             );
  14593.  
  14594.         /**
  14595.          * The height in the View object's screen space.
  14596.          */
  14597.         [
  14598.              propput
  14599.             ,helpcontext(0x100D000C)
  14600.             ,helpstring("The height in the View object's screen space.")
  14601.         ]
  14602.         HRESULT  ScreenHeight(
  14603.             [in] double prop // Height of screen space.
  14604.             );
  14605.  
  14606.         /**
  14607.          * The x coordinate of the left hand side of the View object's screen space.
  14608.          */
  14609.         [
  14610.              propget
  14611.             ,helpcontext(0x100D000D)
  14612.             ,helpstring("The x coordinate of the left hand side of the View object's screen space.")
  14613.         ]
  14614.         HRESULT  ScreenLeft(
  14615.             [out, retval] double* prop // Left side of screen space.
  14616.             );
  14617.  
  14618.         /**
  14619.          * The x coordinate of the left hand side of the View object's screen space.
  14620.          */
  14621.         [
  14622.              propput
  14623.             ,helpcontext(0x100D000D)
  14624.             ,helpstring("The x coordinate of the left hand side of the View object's screen space.")
  14625.         ]
  14626.         HRESULT  ScreenLeft(
  14627.             [in] double prop // Left side of screen space.
  14628.             );
  14629.  
  14630.         /**
  14631.          * The y coordinate of the top of the View object's screen space.
  14632.          */
  14633.         [
  14634.              propget
  14635.             ,helpcontext(0x100D000E)
  14636.             ,helpstring("The y coordinate of the top of the View object's screen space.")
  14637.         ]
  14638.         HRESULT  ScreenTop(
  14639.             [out, retval] double* prop // Top of screen space.
  14640.             );
  14641.  
  14642.         /**
  14643.          * The y coordinate of the top of the View object's screen space.
  14644.          */
  14645.         [
  14646.              propput
  14647.             ,helpcontext(0x100D000E)
  14648.             ,helpstring("The y coordinate of the top of the View object's screen space.")
  14649.         ]
  14650.         HRESULT  ScreenTop(
  14651.             [in] double prop // Top of screen space.
  14652.             );
  14653.  
  14654.         /**
  14655.          * The width in the View object's screen space.
  14656.          */
  14657.         [
  14658.              propget
  14659.             ,helpcontext(0x100D000F)
  14660.             ,helpstring("The width in the View object's screen space.")
  14661.         ]
  14662.         HRESULT  ScreenWidth(
  14663.             [out, retval] double* prop // Width of screen space.
  14664.             );
  14665.  
  14666.         /**
  14667.          * The width in the View object's screen space.
  14668.          */
  14669.         [
  14670.              propput
  14671.             ,helpcontext(0x100D000F)
  14672.             ,helpstring("The width in the View object's screen space.")
  14673.         ]
  14674.         HRESULT  ScreenWidth(
  14675.             [in] double prop // Width of screen space.
  14676.             );
  14677.  
  14678.         /**
  14679.          * Returns the parent object for the specified object.
  14680.          */
  14681.         [
  14682.              propget
  14683.             ,helpcontext(0x100D0010)
  14684.             ,helpstring("Returns the parent object for the specified object.")
  14685.         ]
  14686.         HRESULT  Parent(
  14687.             [out, retval] IDrawing** prop // The parent object.
  14688.             );
  14689.  
  14690.         /**
  14691.          * True if changes to the View object parameters will be immmediately reflected.
  14692.          */
  14693.         [
  14694.              propget
  14695.             ,helpcontext(0x100D0011)
  14696.             ,helpstring("True if changes to the View object parameters will be immmediately reflected.")
  14697.         ]
  14698.         HRESULT  Update(
  14699.             [out, retval] IMSI_BOOL* prop // True if parameters are updated immediately.
  14700.             );
  14701.  
  14702.         /**
  14703.          * True if changes to the View object parameters will be immmediately reflected.
  14704.          */
  14705.         [
  14706.              propput
  14707.             ,helpcontext(0x100D0011)
  14708.             ,helpstring("True if changes to the View object parameters will be immmediately reflected.")
  14709.         ]
  14710.         HRESULT  Update(
  14711.             [in] IMSI_BOOL prop // True if parameters are updated immediately.
  14712.             );
  14713.  
  14714.         /**
  14715.          * The height in the View object's view space.
  14716.          */
  14717.         [
  14718.              propget
  14719.             ,helpcontext(0x100D0012)
  14720.             ,helpstring("The height in the View object's view space.")
  14721.         ]
  14722.         HRESULT  ViewHeight(
  14723.             [out, retval] double* prop // Height of view space.
  14724.             );
  14725.  
  14726.         /**
  14727.          * The height in the View object's view space.
  14728.          */
  14729.         [
  14730.              propput
  14731.             ,helpcontext(0x100D0012)
  14732.             ,helpstring("The height in the View object's view space.")
  14733.         ]
  14734.         HRESULT  ViewHeight(
  14735.             [in] double prop // Height of view space.
  14736.             );
  14737.  
  14738.         /**
  14739.          * The x coordinate of the left hand side of the View object's view space.
  14740.          */
  14741.         [
  14742.              propget
  14743.             ,helpcontext(0x100D0013)
  14744.             ,helpstring("The x coordinate of the left hand side of the View object's view space.")
  14745.         ]
  14746.         HRESULT  ViewLeft(
  14747.             [out, retval] double* prop // Left side of view space.
  14748.             );
  14749.  
  14750.         /**
  14751.          * The x coordinate of the left hand side of the View object's view space.
  14752.          */
  14753.         [
  14754.              propput
  14755.             ,helpcontext(0x100D0013)
  14756.             ,helpstring("The x coordinate of the left hand side of the View object's view space.")
  14757.         ]
  14758.         HRESULT  ViewLeft(
  14759.             [in] double prop // Left side of view space.
  14760.             );
  14761.  
  14762.         /**
  14763.          * The y coordinate of the top of the View object's view space.
  14764.          */
  14765.         [
  14766.              propget
  14767.             ,helpcontext(0x100D0014)
  14768.             ,helpstring("The y coordinate of the top of the View object's view space.")
  14769.         ]
  14770.         HRESULT  ViewTop(
  14771.             [out, retval] double* prop // Top of view space.
  14772.             );
  14773.  
  14774.         /**
  14775.          * The y coordinate of the top of the View object's view space.
  14776.          */
  14777.         [
  14778.              propput
  14779.             ,helpcontext(0x100D0014)
  14780.             ,helpstring("The y coordinate of the top of the View object's view space.")
  14781.         ]
  14782.         HRESULT  ViewTop(
  14783.             [in] double prop // Top of view space.
  14784.             );
  14785.  
  14786.         /**
  14787.          * The width in the View object's view space.
  14788.          */
  14789.         [
  14790.              propget
  14791.             ,helpcontext(0x100D0015)
  14792.             ,helpstring("The width in the View object's view space.")]
  14793.         HRESULT  ViewWidth(
  14794.             [out, retval] double* prop // Width of view space.
  14795.             );
  14796.  
  14797.         /**
  14798.          * The width in the View object's view space.
  14799.          */
  14800.         [
  14801.              propput
  14802.             ,helpcontext(0x100D0015)
  14803.             ,helpstring("The width in the View object's view space.")
  14804.         ]
  14805.         HRESULT  ViewWidth(
  14806.             [in] double prop // Width of view space.
  14807.             );
  14808.  
  14809.         /**
  14810.          * Returns the internal handle associated with the View object.
  14811.          * Private.
  14812.          */
  14813.         [
  14814.              propget
  14815.             ,restricted
  14816.             ,helpcontext(0x100D0016)
  14817.             ,helpstring("Private.  Returns the internal handle associated with the View object.")
  14818.         ]
  14819.         HRESULT  _Handle(
  14820.             [out, retval] long* prop // The internal handle.
  14821.             );
  14822.  
  14823.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  14824.  
  14825.         /**
  14826.          * Closes the bitmap DC, and returns a bitmap handle.
  14827.          */
  14828.         [
  14829.              helpcontext(0x100D0017)
  14830.             ,helpstring("Closes the bitmap DC, and returns a bitmap handle.")
  14831.         ]
  14832.         HRESULT  CloseBitmapDC(
  14833.             [out, retval] long* prop // The bitmap handle.
  14834.             );
  14835.  
  14836.         /**
  14837.          * Closes the metafile DC, and returns a metafile handle.
  14838.          */
  14839.         [
  14840.              helpcontext(0x100D0018)
  14841.             ,helpstring("Closes the metafile DC, and returns a metafile handle.")
  14842.         ]
  14843.         HRESULT  CloseMetafileDC(
  14844.             [out, retval] long* prop // The metafile handle.
  14845.             );
  14846.  
  14847.         /**
  14848.          * Deletes the object.
  14849.          */
  14850.         [
  14851.              helpcontext(0x100D0019)
  14852.             ,helpstring("Deletes the object.")
  14853.         ]
  14854.         HRESULT  Delete(
  14855.             );
  14856.  
  14857.         /**
  14858.          * Opens a DC for bitmap drawing.
  14859.          */
  14860.         [
  14861.              helpcontext(0x100D001A)
  14862.             ,helpstring("Opens a DC for bitmap drawing.")
  14863.         ]
  14864.         HRESULT  OpenBitmapDC(
  14865.             [out, retval] long* prop // The bitmap DC.
  14866.             );
  14867.  
  14868.         /**
  14869.          * Opens a DC for metafile drawing.
  14870.          */
  14871.         [
  14872.              helpcontext(0x100D001B)
  14873.             ,helpstring("Opens a DC for metafile drawing.")
  14874.         ]
  14875.         HRESULT  OpenMetafileDC(
  14876.             [out, retval] long* prop // The metafile DC.
  14877.             );
  14878.  
  14879.         /**
  14880.          * Pick Graphic objects at a point in view coordinate system.
  14881.          */
  14882.         [
  14883.              helpcontext(0x100D001C)
  14884.             ,helpstring("Pick Graphic objects at a point in view coordinate system.")
  14885.         ]
  14886.         HRESULT     PickPoint(
  14887.             [in] double X, // X coordinate of point in view coordinate system.
  14888.             [in] double Y, // Y coordinate of point in view coordinate system.
  14889.             [in, optional] VARIANT* Aperture, // Size of aperture in pixels.
  14890.             [in, optional] VARIANT* TopLevel, // True if only top level Graphic object's are to be picked.
  14891.             [in, optional] VARIANT* Arcs, // True if arcs should be returned in pick.
  14892.             [in, optional] VARIANT* Text, // True if text should be returned in pick.
  14893.             [in, optional] VARIANT* Segments, // True if only segments should be returned in pick.
  14894.             [in, optional] VARIANT* Blocks, // True if segments in blocks should be returned in pick.
  14895.             [in, optional] VARIANT* Invisible, // True if invisible segements can be picked.
  14896.             [out, retval] PickResult** prop // The sorted results of the pick operation.
  14897.             );
  14898.  
  14899.         /**
  14900.          * Pick Graphic objects within a rectangle in the view coordinate system.
  14901.          */
  14902.         [
  14903.              helpcontext(0x100D001D)
  14904.             ,helpstring("Pick Graphic objects within a rectangle in the view coordinate system.")
  14905.         ]
  14906.         HRESULT     PickRect(
  14907.             [in] double Left, // X coordinate of left side of rectangle in the view coordinate system.
  14908.             [in] double Top, // Y coordinate of top of rectangle in the view coordinate system.
  14909.             [in] double Right, // X coordinate of right side of rectangle in the view coordinate system.
  14910.             [in] double Bottom, // Y coordinate of bottom of rectangle in the view coordinate system.
  14911.             [in, optional] VARIANT* TopLevel, // True if only top level Graphic object's are to be picked.
  14912.             [in, optional] VARIANT* Arcs, // True if arcs should be returned in pick.
  14913.             [in, optional] VARIANT* Text, // True if text should be returned in pick.
  14914.             [in, optional] VARIANT* Segments, // True if only segments should be returned in pick.
  14915.             [in, optional] VARIANT* Blocks, // True if segments in blocks should be returned in pick.
  14916.             [in, optional] VARIANT* Invisible, // True if invisible segements can be picked.
  14917.             [out, retval] PickResult** prop // The sorted results of the pick operation.
  14918.             );
  14919.  
  14920.         /**
  14921.          * Pick Graphic objects within a screen polygon.
  14922.          */
  14923.         [
  14924.              helpcontext(0x100D001E)
  14925.             ,helpstring("Pick Graphic objects within a screen polygon.")
  14926.             ,restricted, hidden
  14927.         ]
  14928.         HRESULT     PickPolygon(
  14929.             [in] IGraphic* Polygon, // The polygon specified in screen coordinates, Z ignored.
  14930.             [in, optional] VARIANT* TopLevel, // True if only top level Graphic object's are to be picked.
  14931.             [in, optional] VARIANT* Arcs, // True if arcs should be returned in pick.
  14932.             [in, optional] VARIANT* Text, // True if text should be returned in pick.
  14933.             [in, optional] VARIANT* Segments, // True if only segments should be returned in pick.
  14934.             [in, optional] VARIANT* Blocks, // True if segments in blocks should be returned in pick.
  14935.             [in, optional] VARIANT* Invisible, // True if invisible segements can be picked.
  14936.             [out, retval] PickResult** prop // The sorted results of the pick operation.
  14937.             );
  14938.  
  14939.         /**
  14940.          * Pick Graphic objects within a three dimensional bounding box.
  14941.          */
  14942.         [
  14943.              helpcontext(0x100D001F)
  14944.             ,helpstring("Pick Graphic objects within a three dimensional bounding box.")
  14945.             ,restricted, hidden
  14946.         ]
  14947.         HRESULT     PickCube(
  14948.             [in] double XMin, // Minimum x coordinate of bounding box.
  14949.             [in] double YMin, // Minimum y coordinate of bounding box.
  14950.             [in] double ZMin, // Minimum z coordinate of bounding box.
  14951.             [in] double XMax, // Maximum x coordinate of bounding box.
  14952.             [in] double YMax, // Maximum y coordinate of bounding box.
  14953.             [in] double ZMax, // Maximum z coordinate of bounding box.
  14954.             [in, optional] VARIANT* TopLevel, // True if only top level Graphic object's are to be picked.
  14955.             [in, optional] VARIANT* Arcs, // True if arcs should be returned in pick.
  14956.             [in, optional] VARIANT* Text, // True if text should be returned in pick.
  14957.             [in, optional] VARIANT* Segments, // True if only segments should be returned in pick.
  14958.             [in, optional] VARIANT* Blocks, // True if segments in blocks should be returned in pick.
  14959.             [in, optional] VARIANT* Invisible, // True if invisible segements can be picked.
  14960.             [out, retval] PickResult** prop // The sorted results of the pick operation.
  14961.             );
  14962.  
  14963.         /**
  14964.          * Repaint the Drawing object in this View object.
  14965.          */
  14966.         [
  14967.              helpcontext(0x100D0020)
  14968.             ,helpstring("Repaint the drawing on the View object.")
  14969.         ]
  14970.         HRESULT  Refresh(
  14971.             );
  14972.  
  14973.         /**
  14974.          * Transforms (2D) coordinates from screen space to view space.
  14975.          */
  14976.         [
  14977.              helpcontext(0x100D0021)
  14978.             ,helpstring("Transforms (2D) coordinates from screen space to view space.")
  14979.         ]
  14980.         HRESULT  ScreenToView(
  14981.             [in] double XScreen, // X coordinate in screen space.
  14982.             [in] double YScreen, // Y coordinate in screen space.
  14983.             [out] double* XView, // X coordinate in view space.
  14984.             [out] double* YView // Y coordinate in view space.
  14985.             );
  14986.  
  14987.         /**
  14988.          * Transforms (2D) coordinates from view space to screen space.
  14989.          */
  14990.         [
  14991.              helpcontext(0x100D0022)
  14992.             ,helpstring("Transforms (2D) coordinates from view space to screen space.")
  14993.         ]
  14994.         HRESULT  ViewToScreen(
  14995.             [in] double XView, // X coordinate in view space.
  14996.             [in] double YView, // Y coordinate in view space.
  14997.             [out] double* XScreen, // X coordinate in screen space.
  14998.             [out] double* YScreen, // Y coordinate in screen space.
  14999.             [out, retval] IMSI_BOOL* prop // TRUE if transformed point is within Screen rectangle.
  15000.             );
  15001.  
  15002.         /**
  15003.          * Set the View object's extents to those of the drawing.
  15004.          */
  15005.         [
  15006.              helpcontext(0x100D0023)
  15007.             ,helpstring("Set the View object's extents to those of the drawing.")
  15008.         ]
  15009.         HRESULT  ZoomToExtents(
  15010.             );
  15011.  
  15012.         /**
  15013.          * Return coordinates of a point in view coordinate system.
  15014.          */
  15015.         [
  15016.              helpcontext(0x100D0024)
  15017.             ,helpstring("Return coordinates of a point in view coordinate system.")
  15018.         ]
  15019.         HRESULT  GetMouseClick(
  15020.             [out] double* X, // X coordinate of point in view coordinate system.
  15021.             [out] double* Y // Y coordinate of point in view coordinate system.
  15022.             );
  15023.         [
  15024.              helpcontext(0x100D0025)
  15025.             ,helpstring("Private pick method.")
  15026.         ]
  15027.         HRESULT  _PickPoint(
  15028.             [in] double X,
  15029.             [in] double Y,
  15030.             [in] double Aperture,
  15031.             [in] long Snap,
  15032.             [in] long GGD,
  15033.             [in] IMSI_BOOL bTopLevel,
  15034.             [in] IMSI_BOOL bInvisible,
  15035.             [out, retval] PickResult** prop
  15036.             );
  15037.         [
  15038.              helpcontext(0x100D0026)
  15039.             ,helpstring("Private pick method.")
  15040.         ]
  15041.         HRESULT  _PickRect(
  15042.             [in] double Left,
  15043.             [in] double Top,
  15044.             [in] double Right,
  15045.             [in] double Bottom,
  15046.             [in] long Snap,
  15047.             [in] long GGD,
  15048.             [in] IMSI_BOOL bTopLevel,
  15049.             [in] IMSI_BOOL bInvisible,
  15050.             [out, retval] PickResult** prop
  15051.             );
  15052.         [
  15053.              helpcontext(0x100D0027)
  15054.             ,helpstring("Private pick method.")
  15055.         ]
  15056.         HRESULT  _VirtualIntersection(
  15057.             [in] long v,
  15058.             [in] long g1,
  15059.             [in] long g2,
  15060.             [out, retval] PickResult** prop
  15061.             );
  15062.  
  15063.         /**
  15064.          * Begin, continue or end a drag operation.
  15065.          */
  15066.         [
  15067.              helpcontext(0x100D0028)
  15068.             ,helpstring("Begin, continue or end a drag operation.")
  15069.         ]
  15070.         HRESULT  DragOutline(
  15071.             [in] VARIANT* Coords, // Array of (X, Y, Z) polygon coordinates.
  15072.             [in] double XScreen, // X coordinate of point in screen coordinate system.
  15073.             [in] double YScreen, // Y coordinate of point in screen coordinate system.
  15074.             [in, optional] VARIANT* DragState // Begin, continue or end of drag operation
  15075.             );
  15076.  
  15077.         /**
  15078.          * Repaint the Drawing object in this View object.
  15079.          */
  15080.         [
  15081.              helpcontext(0x100D0029)
  15082.             ,helpstring("Invalidate the extents of a Graphic object or Graphics Collection")
  15083.         ]
  15084.         HRESULT  InvalidateObject(
  15085.             [in] IDispatch* Object
  15086.             );
  15087.         [
  15088.              helpcontext(0x100D002A)
  15089.             ,helpstring("Invalidate a part of the View object.")
  15090.         ]
  15091.         HRESULT  InvalidateScreenRect(
  15092.             [in] double Left,
  15093.             [in] double Top,
  15094.             [in] double Width,
  15095.             [in] double Height
  15096.             );
  15097.         [
  15098.              helpcontext(0x100D002B)
  15099.             ,helpstring("Invalidate a part of the View object.")
  15100.         ]
  15101.         HRESULT  InvalidateViewRect(
  15102.             [in] double Left,
  15103.             [in] double Top,
  15104.             [in] double Width,
  15105.             [in] double Height
  15106.             );
  15107.         [
  15108.              propget
  15109.             ,helpcontext(0x100D002C)
  15110.             ,helpstring("True if the View object's redraws the entire view on Refresh.")
  15111.         ]
  15112.         HRESULT  AutoRedraw(
  15113.             [out, retval] IMSI_BOOL* prop // True to redraw the entire view.
  15114.             );
  15115.  
  15116.         [
  15117.              propput
  15118.             ,helpcontext(0x100D002C)
  15119.             ,helpstring("True if the View object's redraws the entire view on Refresh.")
  15120.         ]
  15121.         HRESULT  AutoRedraw(
  15122.             [in] IMSI_BOOL prop // True to redraw the entire view.
  15123.             );
  15124.  
  15125.         /**
  15126.         *    Zooms the View object to a NamedView object
  15127.         */
  15128.         [
  15129.              helpcontext(0x100D002D)
  15130.             ,helpstring("Zooms the View object to a NamedView object")
  15131.         ]
  15132.         HRESULT  ZoomToNamedView(
  15133.             VARIANT* NamedView // NamedView object or its name or index.
  15134.             );
  15135.         [
  15136.              helpcontext(0x100D002E)
  15137.             ,helpstring("Continue or end a rotating drag operation.")
  15138.         ]
  15139.         HRESULT  RotateDragOutline(
  15140.             [in] VARIANT* Coords, // Array of (X, Y, Z) polygon coordinates.
  15141.             [in] double Angle, // Angle of rotation in radians, counterclockwise positive.
  15142.             [in, optional] VARIANT* DragState // Continue or end of drag operation
  15143.             );
  15144.  
  15145.         [
  15146.              propget,
  15147.             ,restricted
  15148.             ,helpcontext(0x100D002F)
  15149.             ,helpstring("Private, Returns the View object's matrix.")
  15150.         ]
  15151.         HRESULT  _Matrix(
  15152.             [out, retval] IMatrix** prop // True to redraw the entire view.
  15153.             );
  15154.         [
  15155.              propput
  15156.             ,restricted
  15157.             ,helpcontext(0x100D002F)
  15158.             ,helpstring("Private, sets theView's object's matrix")
  15159.         ]
  15160.         HRESULT  _Matrix(
  15161.             [in] IMatrix *prop
  15162.             );
  15163.         
  15164.         [
  15165.              propget
  15166.             ,helpcontext(0x100D0030)
  15167.             ,helpstring("property SpaceMode")
  15168.         ]
  15169.         HRESULT SpaceMode(
  15170.             [out, retval] ImsiSpaceModeType *pVal
  15171.             );
  15172.         
  15173.         [
  15174.              propput
  15175.             ,helpcontext(0x100D0030)
  15176.             ,helpstring("property SpaceMode")
  15177.         ]
  15178.         HRESULT SpaceMode(
  15179.             [in] ImsiSpaceModeType newVal
  15180.             );
  15181.         
  15182.         [
  15183.              propget
  15184.             ,helpcontext(0x100D0031)
  15185.             ,helpstring("property ExternalView")
  15186.         ] 
  15187.         HRESULT ExternalView(
  15188.             [out, retval] IMSI_BOOL *pVal
  15189.             );
  15190.         
  15191.         [
  15192.              propput
  15193.             ,helpcontext(0x100D0031)
  15194.             ,helpstring("property ExternalView")
  15195.         ]
  15196.         HRESULT ExternalView(
  15197.             [in] IMSI_BOOL newVal
  15198.             );
  15199.  
  15200.         /**
  15201.          * Transforms (3D) coordinates from world CS to view CS.
  15202.          */
  15203.         [
  15204.                  helpcontext(0x100D0032)
  15205.                 ,helpstring("Transforms (3D) coordinates from world CS to view CS.")
  15206.         ]
  15207.         HRESULT  WorldToView(
  15208.             [in] double XWorld, // X coordinate in screen space.
  15209.             [in] double YWorld, // Y coordinate in screen space.
  15210.             [in] double ZWorld, // Z coordinate in screen space.
  15211.             [out] double* XView, // X coordinate in view space.
  15212.             [out] double* YView, // Y coordinate in view space.
  15213.             [out] double* ZView // Z coordinate in view space.
  15214.             );
  15215.  
  15216.         /**
  15217.          * Transforms (3D) coordinates from view CS to  world CS.
  15218.          */
  15219.         [
  15220.              helpcontext(0x100D0033)
  15221.             ,helpstring("Transforms (3D) coordinates from view CS to  world CS.")
  15222.         ]
  15223.         HRESULT  ViewToWorld(
  15224.             [in] double XView, // X coordinate in view space.
  15225.             [in] double YView, // Y coordinate in view space.
  15226.             [in] double ZView, // Y coordinate in view space.
  15227.             [out] double* XWorld, // X coordinate in screen space.
  15228.             [out] double* YWorld, // Y coordinate in screen space.
  15229.             [out] double* ZWorld // Z coordinate in screen space.
  15230.             );
  15231.  
  15232.         /////////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  15233.         /**
  15234.          * Returns the RenderView that controls the View object.
  15235.          */
  15236.         [
  15237.              propget
  15238.             ,helpcontext(0x100D0034)
  15239.             ,helpstring("Returns the RenderView object that controls the View object.")
  15240.         ]
  15241.         HRESULT  RenderView(
  15242.             [out, retval] IDispatch** prop // The RenderView object.
  15243.             );
  15244.  
  15245.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  15246.         /**
  15247.          * Closes the bitmap DC, and returns a bitmap bits in SAFEARRAY.
  15248.          */
  15249.         [
  15250.              helpcontext(0x100D0035)
  15251.             ,helpstring("Closes the bitmap DC, and returns a bitmap bits in SAFEARRAY.")
  15252.         ]
  15253.         HRESULT  CloseBitmapBitsDC(
  15254.             [out, retval] VARIANT* prop // The bitmap bits as SAFEARRA.
  15255.             );
  15256.  
  15257.         /**
  15258.          * Closes the metafile DC, and returns a metafile bits in SAFEARRAY.
  15259.          */
  15260.         [
  15261.              helpcontext(0x100D0036)
  15262.             ,helpstring("Closes the metafile DC, and returns a metafile bits in SAFEARRAY.")
  15263.         ]
  15264.         HRESULT  CloseMetafileBitsDC(
  15265.             [out, retval] VARIANT* prop // The metafile  bits in SAFEARRAY
  15266.             );
  15267.  
  15268.         /**
  15269.          * Closes the bitmap DC, and returns a bitmap bits in SAFEARRAY.
  15270.          */
  15271.         [
  15272.              helpcontext(0x100D0037)
  15273.             ,helpstring("Closes the bitmap DC, and returns a a Picture object.")
  15274.         ]
  15275.         HRESULT  CloseBitmapPictDC(
  15276.             [out, retval] IDispatch** prop // The Picture object.
  15277.             );
  15278.  
  15279.         /**
  15280.          * Closes the metafile DC, and returns a metafile bits in SAFEARRAY.
  15281.          */
  15282.         [
  15283.              helpcontext(0x100D0038)
  15284.             ,helpstring("Closes the metafile DC, and returns a Picture object.")
  15285.         ]
  15286.         HRESULT  CloseMetafilePictDC(
  15287.             [out, retval] IDispatch** prop // The Picture object.
  15288.             );
  15289.  
  15290.         /////////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  15291.  
  15292.         /**
  15293.          * Returns the PaperSpace object that this View object display.
  15294.          */
  15295.         [
  15296.              propget
  15297.             ,helpcontext(0x100D0039)
  15298.             ,helpstring("property PaperSpace")
  15299.         ]
  15300.         HRESULT PaperSpace(
  15301.             [out, retval] IDispatch**    prop
  15302.             );
  15303.         
  15304.         /**
  15305.          * Sets the PaperSpace object that this View object display.
  15306.          */
  15307.         [
  15308.              propput
  15309.             ,helpcontext(0x100D0039)
  15310.             ,helpstring("property PaperSpace")
  15311.         ]
  15312.         HRESULT PaperSpace(
  15313.             [in] VARIANT* prop
  15314.             );
  15315.         
  15316.         /**
  15317.          * Returns the ID of the LayersSet object that this View object display.
  15318.          */
  15319.         [
  15320.              propget
  15321.             ,helpcontext(0x100D003A)
  15322.             ,helpstring("ID of the LayersSet object that this View object display ")
  15323.         ]
  15324.         HRESULT LayersSetID(
  15325.             [out, retval] long*    prop
  15326.             );
  15327.         
  15328.         /**
  15329.          * Sets the PaperSpace object that this View object display.
  15330.          */
  15331.         [
  15332.              propput
  15333.             ,helpcontext(0x100D003A)
  15334.             ,helpstring("ID of the LayersSet object that this View object display")
  15335.         ]
  15336.         HRESULT LayersSetID(
  15337.             [in] long prop
  15338.             );
  15339.     };
  15340.  
  15341.  
  15342.  
  15343.     /**
  15344.      * The collection of View objects in a Drawing object.
  15345.      */
  15346.     [
  15347.          object
  15348.         ,uuid(6A481111-E531-11CF-A115-00A024158DAF)
  15349.         ,oleautomation
  15350.         ,dual
  15351.         ,helpcontext(0x100E0000)
  15352.         ,helpstring("A collection of TurboCAD viewports.")
  15353.     ]
  15354.     interface Views : IDispatch
  15355.     {
  15356.  
  15357.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15358.  
  15359.         /**
  15360.          * Returns an Application object that represents the owner of the specified object.
  15361.          */
  15362.         [
  15363.              propget
  15364.             ,helpcontext(0x100E0001)
  15365.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  15366.         ]
  15367.         HRESULT  Application(
  15368.             [out, retval] IApplication** prop // The Application object.
  15369.             );
  15370.  
  15371.         /**
  15372.          * Returns the number of items in the collection.
  15373.          */
  15374.         [
  15375.              propget
  15376.             ,helpcontext(0x100E0002)
  15377.             ,helpstring("Returns the number of items in the collection.")
  15378.         ]
  15379.         HRESULT  Count(
  15380.             [out, retval] long* prop // The number of items.
  15381.             );
  15382.  
  15383.         /**
  15384.          * Returns part of a collection.
  15385.          */
  15386.         [
  15387.              propget
  15388.             ,id(DISPID_VALUE)
  15389.             ,helpcontext(0x100E0003)
  15390.             ,helpstring("Returns part of a collection.")
  15391.         ]
  15392.         HRESULT  Item(
  15393.             [in] VARIANT* Index, // Index of item to return.
  15394.             [out, retval] View** prop // The item.
  15395.             );
  15396.  
  15397.         /**
  15398.          * Returns the parent object for the specified object.
  15399.          */
  15400.         [
  15401.              propget
  15402.             ,helpcontext(0x100E0004)
  15403.             ,helpstring("Returns the parent object for the specified object.")
  15404.         ]
  15405.         HRESULT  Parent(
  15406.             [out, retval] IDrawing** prop // The parent object.
  15407.             );
  15408.  
  15409.         /**
  15410.          * Creates an enumeration object.
  15411.          */
  15412.         [
  15413.              propget
  15414.             ,restricted
  15415.             ,id(DISPID_NEWENUM)
  15416.             ,helpcontext(0x100E0005)
  15417.             ,helpstring("Private.  Creates an enumeration object.")
  15418.         ]
  15419.         HRESULT  _NewEnum(
  15420.             [out, retval] IUnknown** prop // The enumeration object.
  15421.             );
  15422.  
  15423.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15424.  
  15425.         /**
  15426.          * Adds a View object to the collection.
  15427.          */
  15428.         [
  15429.              helpcontext(0x100E0006)
  15430.             ,helpstring("Adds a View object to the collection.")
  15431.         ]
  15432.         HRESULT  Add(
  15433.             [in, optional] VARIANT* hWnd, // A window handle to attach to the View object.
  15434.             [in, optional] VARIANT* hDC, // A DC to attach to the View object.
  15435.             [out, retval] View** prop // The newly created View object.
  15436.             );
  15437.  
  15438.         /**
  15439.          * Repaint the Drawing object on all the View objects in the collection.
  15440.          */
  15441.         [
  15442.              helpcontext(0x100E0007)
  15443.             ,helpstring("Repaint the drawing on the all the View objects in the collection.")
  15444.         ]
  15445.         HRESULT  Refresh(
  15446.             );
  15447.  
  15448.         /**
  15449.          * Returns the index within the Views collection of the specified viewport handle.
  15450.          * Private.
  15451.          */
  15452.         [
  15453.              restricted
  15454.             ,helpcontext(0x100E0008)
  15455.             ,helpstring("Private.  Returns the index within the Views collection of the specified viewport handle.")
  15456.         ]
  15457.         HRESULT  _FindIndex(
  15458.             [in] long vp, // The viewport handle.
  15459.             [out, retval] long* prop // The index.
  15460.             );
  15461.         [
  15462.              helpcontext(0x100E0009)
  15463.             ,helpstring("Invalidate the extents of a Graphic object or Graphics Collection.")
  15464.         ]
  15465.         HRESULT  InvalidateObject(
  15466.             [in] IDispatch* Object
  15467.             );
  15468.  
  15469.     };
  15470.  
  15471.     /** 
  15472.      * A TurboCAD camera.
  15473.      */
  15474.     [
  15475.          object
  15476.         ,uuid(6A481112-E531-11CF-A115-00A024158DAF)
  15477.         ,oleautomation
  15478.         ,dual
  15479.         ,helpcontext(0x100F0000)
  15480.         ,helpstring("A TurboCAD camera.")
  15481.     ]
  15482.     interface ICamera : IDispatch
  15483.     {
  15484.  
  15485.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15486.  
  15487.         /**
  15488.          * Returns an Application object that represents the owner of the specified object.
  15489.          */
  15490.         [
  15491.              propget
  15492.             ,helpcontext(0x100F0001)
  15493.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  15494.         ]
  15495.         HRESULT  Application(
  15496.             [out, retval] IApplication** prop // The Application object.
  15497.             );
  15498.  
  15499.         /**
  15500.          * Returns the Camera object's back clipping distance.
  15501.          */
  15502.         [
  15503.              propget
  15504.             ,helpcontext(0x100F0002)
  15505.             ,helpstring("Returns the Camera object's back clipping distance.")
  15506.             ,restricted, hidden
  15507.         ]
  15508.         HRESULT  BackClip(
  15509.             [out, retval] double* prop // The back clipping distance.
  15510.             );
  15511.  
  15512.         /**
  15513.          * Sets the Camera object's back clipping distance.
  15514.          */
  15515.         [
  15516.              propput
  15517.             ,helpcontext(0x100F0002)
  15518.             ,helpstring("Sets the Camera object's back clipping distance.")
  15519.             ,restricted, hidden
  15520.         ]
  15521.         HRESULT  BackClip(
  15522.             [in] double prop // The back clipping distance.
  15523.             );
  15524.  
  15525.         /**
  15526.          * Returns the Camera object's direction vector.
  15527.          */
  15528.         [
  15529.              propget
  15530.             ,helpcontext(0x100F0003)
  15531.             ,helpstring("Returns the Camera object's direction vector.")
  15532.         ]
  15533.         HRESULT  Direction(
  15534.             [out, retval] IVertex** prop // The normalized direction vector, as a Vertex object.
  15535.             );
  15536.  
  15537.         /**
  15538.          * Sets the Camera object's direction vector.
  15539.          */
  15540.         [
  15541.              propput
  15542.             ,helpcontext(0x100F0003)
  15543.             ,helpstring("Sets the Camera object's direction vector.")
  15544.         ]
  15545.         HRESULT  Direction(
  15546.             [in] IVertex* prop // The direction vector, as a Vertex object.
  15547.             );
  15548.  
  15549.         /**
  15550.          * Returns the Camera object's field of view.
  15551.          */
  15552.         [
  15553.              propget
  15554.             ,helpcontext(0x100F0004)
  15555. //            ,helpstring("Returns the Camera object's field of view.")
  15556.             ,helpstring("Returns the Camera object's perspective angle.")
  15557.         ]
  15558.         HRESULT  PerspectiveAngle(
  15559.             [out, retval] double* prop // The perspective angle of camera.
  15560.             );
  15561.  
  15562.         /**
  15563.          * Sets the Camera object's field of view.
  15564.          */
  15565.         [
  15566.              propput
  15567.             ,helpcontext(0x100F0004)
  15568. //            ,helpstring("Sets the Camera object's field of view.")
  15569.             ,helpstring("Returns the Camera object's perspective angle.")
  15570.         ]
  15571.         HRESULT  PerspectiveAngle(
  15572.             [in] double prop // The perspective angle of camera.
  15573.             );
  15574.  
  15575.         /**
  15576.          * Returns the Camera object's front clipping distance.
  15577.          */
  15578.         [
  15579.              propget
  15580.             ,helpcontext(0x100F0005)
  15581.             ,helpstring("Returns the Camera object's front clipping distance.")
  15582.             ,restricted, hidden
  15583.         ]
  15584.         HRESULT  FrontClip(
  15585.             [out, retval] double* prop // The front clipping distance.
  15586.             );
  15587.  
  15588.         /**
  15589.          * Sets the Camera object's front clipping distance.
  15590.          */
  15591.         [
  15592.              propput
  15593.             ,helpcontext(0x100F0005)
  15594.             ,helpstring("Sets the Camera object's front clipping distance.")
  15595.             ,restricted, hidden
  15596.         ]
  15597.         HRESULT  FrontClip(
  15598.             [in] double prop // The front clipping distance.
  15599.             );
  15600.  
  15601.         /**
  15602.          * Returns the Camera object's location.
  15603.          */
  15604.         [
  15605.              propget
  15606.             ,helpcontext(0x100F0006)
  15607.             ,helpstring("Returns the Camera object's location.")
  15608.         ]
  15609.         HRESULT  Location(
  15610.             [out, retval] IVertex** prop // The location, as a Vertex object.
  15611.             );
  15612.  
  15613.         /**
  15614.          * Sets the Camera object's location.
  15615.          */
  15616.         [
  15617.              propput
  15618.             ,helpcontext(0x100F0006)
  15619.             ,helpstring("Sets the Camera object's location.")
  15620.         ]
  15621.         HRESULT  Location(
  15622.             [in] IVertex* prop // The location, as a Vertex object.
  15623.             );
  15624.  
  15625.         /**
  15626.          * Returns the Camera object's point of interest.
  15627.          */
  15628.         [
  15629.              propget
  15630.             ,helpcontext(0x100F0007)
  15631.             ,helpstring("Returns the Camera object's point of interest.")
  15632.         ]
  15633.         HRESULT  LookAt(
  15634.             [out, retval] IVertex** prop // The point of interest, as a Vertex object.
  15635.             );
  15636.  
  15637.         /**
  15638.          * Sets the Camera object's point of interest.
  15639.          */
  15640.         [
  15641.              propput
  15642.             ,helpcontext(0x100F0007)
  15643.             ,helpstring("Sets the Camera object's point of interest.")
  15644.         ]
  15645.         HRESULT  LookAt(
  15646.             [in] IVertex* prop // The point of interest, as a Vertex object.
  15647.             );
  15648.  
  15649.         /**
  15650.          * Returns the name of the object, as a string.
  15651.          */
  15652.         [
  15653.              propget
  15654.             ,helpcontext(0x100F0008)
  15655.             ,helpstring("Returns the name of the object, as a string.")
  15656.             ,restricted, hidden
  15657.         ]
  15658.         HRESULT  Name(
  15659.             [out, retval] BSTR* prop // The name of the object.
  15660.             );
  15661.  
  15662.         /**
  15663.          * Returns the parent object for the specified object.
  15664.          */
  15665.         [
  15666.              propget
  15667.             ,helpcontext(0x100F0009)
  15668.             ,helpstring("Returns the parent object for the specified object.")
  15669.         ]
  15670.         HRESULT  Parent(
  15671.             [out, retval] IDispatch** prop // The parent object.
  15672.             );
  15673.  
  15674.         /**
  15675.          * Returns the Camera object's projection type.
  15676.          */
  15677.         [
  15678.              propget
  15679.             ,helpcontext(0x100F000A)
  15680.             ,helpstring("Returns the Camera object's projection type.")
  15681.             ,restricted, hidden
  15682.         ]
  15683.         HRESULT  ProjectionType(
  15684.             [out, retval] ImsiProjection* prop // The projection type.
  15685.             );
  15686.  
  15687.         /**
  15688.          * Sets the Camera object's projection type.
  15689.          */
  15690.         [
  15691.              propput
  15692.             ,helpcontext(0x100F000A)
  15693.             ,helpstring("Sets the Camera object's projection type.")
  15694.             ,restricted, hidden
  15695.         ]
  15696.         HRESULT  ProjectionType(
  15697.             [in] ImsiProjection prop // The projection type.
  15698.             );
  15699.  
  15700.         /**
  15701.          * Returns the Camera object's right vector.
  15702.          */
  15703.         [
  15704.              propget
  15705.             ,helpcontext(0x100F000B)
  15706.             ,helpstring("Returns the Camera object's right vector.")
  15707.         ]
  15708.         HRESULT  Right(
  15709.             [out, retval] IVertex** prop // The normalized right vector, as a Vertex object.
  15710.             );
  15711.  
  15712.         /**
  15713.          * Sets the Camera object's right vector.
  15714.          */
  15715.         [
  15716.              propput
  15717.             ,helpcontext(0x100F000B)
  15718.             ,helpstring("Sets the Camera object's right vector.")
  15719.         ]
  15720.         HRESULT  Right(
  15721.             [in] IVertex* prop // The right vector, as a Vertex object.
  15722.             );
  15723.  
  15724.         /**
  15725.          * Returns the Camera object's up vector.
  15726.          */
  15727.         [
  15728.              propget
  15729.             ,helpcontext(0x100F000C)
  15730.             ,helpstring("Returns the Camera object's up vector.")
  15731.         ]
  15732.         HRESULT  Up(
  15733.             [out, retval] IVertex** prop // The normalized up vector, as a Vertex object.
  15734.             );
  15735.  
  15736.         /**
  15737.          * Sets the Camera object's up vector.
  15738.          */
  15739.         [
  15740.              propput
  15741.             ,helpcontext(0x100F000C)
  15742.             ,helpstring("Sets the Camera object's up vector.")
  15743.         ]
  15744.         HRESULT  Up(
  15745.             [in] IVertex* prop // The up vector, as a Vertex object.
  15746.             );
  15747.  
  15748.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15749.  
  15750.         /**
  15751.          * Duplicates the object and returns a reference to the new copy.
  15752.          */
  15753.         [
  15754.              helpcontext(0x100F000D)
  15755.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  15756.             ,restricted, hidden
  15757.         ]
  15758.         HRESULT  Duplicate(
  15759.             [out, retval] ICamera** prop // The duplicated Camera object.
  15760.             );
  15761.  
  15762.         /**
  15763.          * Orbits the Camera object about the point of interest.
  15764.          */
  15765.         [
  15766.              helpcontext(0x100F000E)
  15767.             ,helpstring("Orbits the Camera object about the point of interest.")
  15768.         ]
  15769.         HRESULT  Orbit(
  15770.             [in] double Angle, // The rotation angle in radians.
  15771.             [in, optional] VARIANT* CameraCoordinates, // True to use camera's coordinate system.
  15772.             [in, optional] VARIANT* XOrRight, // The x or right coordinate of the rotation axis.
  15773.             [in, optional] VARIANT* YOrUp, // The y or up coordinate of the rotation axis.
  15774.             [in, optional] VARIANT* ZOrDirection // The z or direction coordinate of the rotation axis.
  15775.             );
  15776.  
  15777.         /**
  15778.          * Tilts the Camera object left or right.
  15779.          */
  15780.         [
  15781.              helpcontext(0x100F000F)
  15782.             ,helpstring("Tilts the Camera object left or right.")
  15783.         ]
  15784.         HRESULT  Pan(
  15785.             [in] double AngleRight // The angle to tilt to the right in radians.
  15786.             );
  15787.  
  15788.         /**
  15789.          * Rotates the Camera object about an arbitrary axis.
  15790.          */
  15791.         [
  15792.              helpcontext(0x100F0010)
  15793.             ,helpstring("Rotates the Camera object about an arbitrary axis.")
  15794.         ]
  15795.         HRESULT  Rotate(
  15796.             [in] double Angle, // The rotation angle in radians.
  15797.             [in, optional] VARIANT* CameraCoordinates, // True to use camera's coordinate system.
  15798.             [in, optional] VARIANT* XOrRight, // The x or right coordinate of the rotation axis.
  15799.             [in, optional] VARIANT* YOrUp, // The y or up coordinate of the rotation axis.
  15800.             [in, optional] VARIANT* ZOrDirection // The z or direction coordinate of the rotation axis.
  15801.             );
  15802.  
  15803.         /**
  15804.          * Slides the Camera object perpendicular to its direction vector.
  15805.          */
  15806.         [
  15807.              helpcontext(0x100F0011)
  15808.             ,helpstring("Slides the Camera object perpendicular to its direction vector.")
  15809.         ]
  15810.         HRESULT  Slide(
  15811.             [in] double DistanceUp, // The distance to slide in the up direction.
  15812.             [in] double DistanceRight // The distance to slide in the right direction.
  15813.             );
  15814.  
  15815.         /**
  15816.          * Tilts the Camera object up or down.
  15817.          */
  15818.         [
  15819.              helpcontext(0x100F0012)
  15820.             ,helpstring("Tilts the Camera object up or down.")
  15821.         ]
  15822.         HRESULT  Tilt(
  15823.             [in] double AngleUp // The angle to tilt up in radians.
  15824.             );
  15825.  
  15826.         /**
  15827.          * Moves the Camera object along its direction vector.
  15828.          */
  15829.         [
  15830.              helpcontext(0x100F0013)
  15831.             ,helpstring("Moves the Camera object along its direction vector.")
  15832.         ]
  15833.         HRESULT  Track(
  15834.             [in] double DistanceForward // The distance to move.
  15835.             );
  15836.  
  15837.         /**
  15838.          * Zooms the focal length of the Camera object.
  15839.          */
  15840.         [
  15841.              helpcontext(0x100F0014)
  15842.             ,helpstring("Zooms the focal length of the Camera object.")
  15843.         ]
  15844.         HRESULT  Zoom(
  15845.             [in] double ZoomFactor // The amount of zoom.
  15846.             );
  15847.  
  15848.         /**
  15849.          * Set All camera vectors : Pos, Look, Up.
  15850.          */
  15851.         [
  15852.              helpcontext(0x100F0015)
  15853.             ,helpstring("Set all camera vectors : Pos, Look, Up.")
  15854.         ]
  15855.  
  15856.         HRESULT CameraSetSpaceParameters(
  15857.              [in] IVertex *pvPos
  15858.             ,[in] IVertex *pvLook
  15859.             ,[in] IVertex *pvU
  15860.             );
  15861.  
  15862.         [
  15863.              propget
  15864.             ,helpcontext(0x100F0016)
  15865.             ,helpstring("property Perspective.")
  15866.         ]
  15867.         HRESULT Perspective(
  15868.             [out, retval] IMSI_BOOL* pVal
  15869.             );
  15870.  
  15871.         [
  15872.              propput
  15873.             ,helpcontext(0x100F0016)
  15874.             ,helpstring("property Perspective.")
  15875.         ]
  15876.         HRESULT Perspective(
  15877.             [in] IMSI_BOOL newVal
  15878.             );
  15879.     };
  15880.  
  15881.  
  15882.  
  15883.     /**
  15884.      * An object that maintains custom Graphic objects.
  15885.      */
  15886.     [
  15887.          object
  15888.         ,uuid(6A481113-E531-11CF-A115-00A024158DAF)
  15889.         ,oleautomation
  15890.         ,dual
  15891.         ,helpcontext(0x10100000)
  15892.         ,helpstring("An object that maintains custom Graphic objects.")
  15893.     ]
  15894.     interface RegenMethod : IDispatch
  15895.     {
  15896.  
  15897.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15898.  
  15899.         /**
  15900.          * Returns an Application object that represents the owner of the specified object.
  15901.          */
  15902.         [
  15903.              propget
  15904.             ,helpcontext(0x10100001)
  15905.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  15906.         ]
  15907.         HRESULT  Application(
  15908.             [out, retval] IApplication** prop // The Application object.
  15909.             );
  15910.  
  15911.         /**
  15912.          * Returns the RegenMethod object that this RegenMethod object is based on.
  15913.          */
  15914.         [
  15915.              propget
  15916.             ,helpcontext(0x10100002)
  15917.             ,helpstring("Returns the RegenMethod object that this RegenMethod object is based on.")
  15918.             ,restricted, hidden
  15919.         ]
  15920.         HRESULT  BasedOn(
  15921.             [out, retval] RegenMethod** prop // The RegenMethod object that this RegenMethod object is based on.
  15922.             );
  15923.  
  15924.         /**
  15925.          * Returns a description of the specified object, as a string.
  15926.          */
  15927.         [
  15928.              propget
  15929.             ,helpcontext(0x10100003)
  15930.             ,helpstring("Returns a description of the specified object, as a string.")
  15931.         ]
  15932.         HRESULT  Description(
  15933.             [out, retval] BSTR* prop // A string describing the object.
  15934.             );
  15935.  
  15936.         /**
  15937.          * Returns the RegenMethod object's detail level.
  15938.          */
  15939.         [
  15940.              propget
  15941.             ,helpcontext(0x10100004)
  15942.             ,helpstring("Returns the RegenMethod object's detail level.")
  15943.             ,restricted, hidden
  15944.         ]
  15945.         HRESULT  Detail(
  15946.             [out, retval] SHORT* prop // The detail level of the RegenMethod object.
  15947.             );
  15948.  
  15949.         /**
  15950.          * Sets the RegenMethod object's detail level.
  15951.          */
  15952.         [
  15953.              propput
  15954.             ,helpcontext(0x10100004)
  15955.             ,helpstring("Sets the RegenMethod object's detail level.")
  15956.             ,restricted, hidden
  15957.         ]
  15958.         HRESULT  Detail(
  15959.             [in] SHORT detail // The detail level.
  15960.             );
  15961.  
  15962.         /**
  15963.          * Returns the index of the item in the collection.
  15964.          */
  15965.         [
  15966.              propget
  15967.             ,helpcontext(0x10100005)
  15968.             ,helpstring("Returns the index of the item in the collection.")
  15969.         ]
  15970.         HRESULT  Index(
  15971.             [out, retval] long* prop // The index.
  15972.             );
  15973.  
  15974.         /**
  15975.          * Returns the name of the object, as a string.
  15976.          */
  15977.         [
  15978.              propget
  15979.             ,helpcontext(0x10100006)
  15980.             ,helpstring("Returns the name of the object, as a string.")
  15981.         ]
  15982.         HRESULT  Name(
  15983.             [out, retval] BSTR* prop // The name of the object.
  15984.             );
  15985.  
  15986.         /**
  15987.          * Returns the parent object for the specified object.
  15988.          */
  15989.         [
  15990.              propget
  15991.             ,helpcontext(0x10100007)
  15992.             ,helpstring("Returns the parent object for the specified object.")
  15993.         ]
  15994.         HRESULT  Parent(
  15995.             [out, retval] IDispatch** prop // The parent object.
  15996.             );
  15997.  
  15998.         /**
  15999.          * Returns a Properties collection of the properties supported by the RegenMethod object.
  16000.          */
  16001.         [
  16002.              propget
  16003.             ,helpcontext(0x10100008)
  16004.             ,helpstring("Returns a Properties collection of the properties supported by the RegenMethod object.")
  16005.             ,restricted, hidden
  16006.         ]
  16007.         HRESULT  Properties(
  16008.             [out, retval] Properties** props // The Properties collection.
  16009.             );
  16010.  
  16011.         /**
  16012.          * Returns the name of a RegenMethod object's property page.
  16013.          */
  16014.         [
  16015.              propget
  16016.             ,helpcontext(0x10100009)
  16017.             ,helpstring("Returns the name of a RegenMethod object's property page.")
  16018.             ,restricted, hidden
  16019.         ]
  16020.         HRESULT  PropertyPage(
  16021.             [in] long Index, // The index of the property page.
  16022.             [out, retval] BSTR* prop // The name of the property page.
  16023.             );
  16024.  
  16025.         /**
  16026.          * Returns the number of property pages supported by the RegenMethod object.
  16027.          */
  16028.         [
  16029.              propget
  16030.             ,helpcontext(0x1010000A)
  16031.             ,helpstring("Returns the number of property pages supported by the RegenMethod object.")
  16032.             ,restricted, hidden
  16033.         ]
  16034.         HRESULT  PropertyPageCount(
  16035.             [out, retval] long* prop // The number of property pages.
  16036.             );
  16037.  
  16038.         /**
  16039.          * Returns the type of the RegenMethod object.
  16040.          */
  16041.         [
  16042.              propget
  16043.             ,helpcontext(0x1010000B)
  16044.             ,helpstring("Returns the type of the RegenMethod object.")
  16045.         ]
  16046.         HRESULT  Type(
  16047.             [out, retval] ImsiRegenMethodType* prop // The type of the RegenMethod object.
  16048.             );
  16049.  
  16050.         /**
  16051.          * Returns the name of a RegenMethod object's wizard.
  16052.          */
  16053.         [
  16054.              propget
  16055.             ,helpcontext(0x1010000C)
  16056.             ,helpstring("Returns the name of a RegenMethod object's wizard.")
  16057.             ,restricted, hidden
  16058.         ]
  16059.         HRESULT  Wizard(
  16060.             [in] long Index, // The index of the wizard.
  16061.             [out, retval] BSTR* prop // The name of the wizard.
  16062.             );
  16063.  
  16064.         /**
  16065.          * Returns the number of wizards supported by the RegenMethod object.
  16066.          */
  16067.         [
  16068.              propget
  16069.             ,helpcontext(0x1010000D)
  16070.             ,helpstring("Returns the number of wizards supported by the RegenMethod object.")
  16071.             ,restricted, hidden
  16072.         ]
  16073.         HRESULT  WizardCount(
  16074.             [out, retval] long* prop // The number of wizards.
  16075.             );
  16076.  
  16077.         /**
  16078.          * Returns the internal table entry ID.
  16079.          * Private.
  16080.          */
  16081.         [
  16082.              propget
  16083.             ,restricted
  16084.             ,helpcontext(0x1010000E)
  16085.             ,helpstring("Private.  Returns the internal table entry ID.")
  16086.         ]
  16087.         HRESULT  _TableEntryID(
  16088.             [out, retval] long* prop // The table entry ID.
  16089.             );
  16090.  
  16091.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16092.  
  16093.         /**
  16094.          * Deletes the object.
  16095.          */
  16096.         [
  16097.              helpcontext(0x1010000F)
  16098.             ,helpstring("Deletes the object.")
  16099.             ,restricted, hidden
  16100.         ]
  16101.         HRESULT  Delete(
  16102.             );
  16103.  
  16104.         /**
  16105.          * Run a property page for the RegenMethod object.
  16106.          */
  16107.         [
  16108.              helpcontext(0x10100010)
  16109.             ,helpstring("Run a wizard for the RegenMethod object.")
  16110.             ,restricted, hidden
  16111.         ]
  16112.         HRESULT  RunPropertyPage(
  16113.             [in] Graphics* Objects, // The collection of Graphic objects that the property page will modify.
  16114.             [in, optional] VARIANT* Index, // A name or index specifying which property page to run.
  16115.             [out, retval] IMSI_BOOL* GraphicsWereChanged // True if the Graphics collection was added to.
  16116.             );
  16117.  
  16118.         /**
  16119.          * Run a wizard for the RegenMethod object.
  16120.          */
  16121.         [
  16122.              helpcontext(0x10100011)
  16123.             ,helpstring("Run a wizard for the RegenMethod object.")
  16124.             ,restricted, hidden
  16125.         ]
  16126.         HRESULT  RunWizard(
  16127.             [in] Graphics* Objects, // The collection of Graphic objects that the wizard will add to.
  16128.             [in, optional] VARIANT* Name, // A name or index specifying which wizard to run.
  16129.             [out, retval] IMSI_BOOL* GraphicsWereAdded // True if the Graphics collection was added to.
  16130.             );
  16131.  
  16132.     };
  16133.  
  16134.     /**
  16135.      * A collection of RegenMethod objects.
  16136.      */
  16137.     [
  16138.          object
  16139.         ,uuid(6A481114-E531-11CF-A115-00A024158DAF)
  16140.         ,oleautomation
  16141.         ,dual
  16142.         ,helpcontext(0x10110000)
  16143.         ,helpstring("A collection of RegenMethod objects.")
  16144.     ]
  16145.     interface RegenMethods : IDispatch
  16146.     {
  16147.  
  16148.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16149.  
  16150.         /**
  16151.          * Returns an Application object that represents the owner of the specified object.
  16152.          */
  16153.         [
  16154.              propget
  16155.             ,helpcontext(0x10110001)
  16156.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  16157.         ]
  16158.         HRESULT  Application(
  16159.             [out, retval] IApplication** prop // The Application object.
  16160.             );
  16161.  
  16162.         /**
  16163.          * Returns the number of items in the collection.
  16164.          */
  16165.         [
  16166.              propget
  16167.             ,helpcontext(0x10110002)
  16168.             ,helpstring("Returns the number of items in the collection.")
  16169.         ]
  16170.         HRESULT  Count(
  16171.             [out, retval] long* prop // The number of items.
  16172.             );
  16173.  
  16174.         /**
  16175.          * Returns part of a collection.
  16176.          */
  16177.         [
  16178.              propget
  16179.             ,id(DISPID_VALUE)
  16180.             ,helpcontext(0x10110003)
  16181.             ,helpstring("Returns part of a collection.")
  16182.         ]
  16183.         HRESULT  Item(
  16184.             [in] VARIANT* Index, // Index of item to return.
  16185.             [out, retval] RegenMethod** prop // The item.
  16186.             );
  16187.  
  16188.         /**
  16189.          * Returns the parent object for the specified object.
  16190.          */
  16191.         [
  16192.              propget
  16193.             ,helpcontext(0x10110004)
  16194.             ,helpstring("Returns the parent object for the specified object.")
  16195.         ]
  16196.         HRESULT  Parent(
  16197.             [out, retval] IDispatch** prop // The parent object.
  16198.             );
  16199.  
  16200.         /**
  16201.          * Creates an enumeration object.
  16202.          */
  16203.         [
  16204.              propget
  16205.             ,restricted
  16206.             ,id(DISPID_NEWENUM)
  16207.             ,helpcontext(0x10110005)
  16208.             ,helpstring("Private.  Creates an enumeration object.")
  16209.         ]
  16210.         HRESULT  _NewEnum(
  16211.             [out, retval] IUnknown** prop // The enumeration object.
  16212.             );
  16213.  
  16214.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16215.  
  16216.         /**
  16217.          * Adds one or more RegenMethod objects to the collection.
  16218.          */
  16219.         [
  16220.              helpcontext(0x10110006)
  16221.             ,helpstring("Adds one or more RegenMethod objects to the collection.")
  16222.             ,restricted, hidden
  16223.         ]
  16224.         HRESULT  Add(
  16225.             [in] BSTR FileName, // The file containing the RegenMethod objects.
  16226.             [in, out, optional] VARIANT* RegensAdded // An array of RegenMethod objects added.
  16227.             );
  16228.  
  16229.         /**
  16230.          * Returns the index within the table collection of the specified table entry.
  16231.          * Private.
  16232.          */
  16233.         [
  16234.              restricted
  16235.             ,helpcontext(0x10110007)
  16236.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  16237.         ]
  16238.         HRESULT  _FindIndex(
  16239.             [in] long TableEntryID, // The internal table ID.
  16240.             [out, retval] long* prop // The zero based index.
  16241.             );
  16242.  
  16243.         /**
  16244.          * Returns an object from the table collection for the specified table entry.
  16245.          * Private.
  16246.          */
  16247.         [
  16248.              restricted
  16249.             ,helpcontext(0x10110008)
  16250.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  16251.         ]
  16252.         HRESULT  _ObjectFromID(
  16253.             [in] long TableEntryID, // The internal table ID.
  16254.             [out, retval] RegenMethod** prop // The object.
  16255.             );
  16256.     };
  16257.  
  16258.  
  16259.     /**
  16260.      * An object which controls the loading and saving of objects to and from disk.
  16261.      */
  16262.     [
  16263.          object
  16264.         ,uuid(6A48111B-E531-11CF-A115-00A024158DAF)
  16265.         ,oleautomation
  16266.         ,dual
  16267.         ,helpcontext(0x10120000)
  16268.         ,helpstring("An object which controls the loading and saving of objects to and from disk.")
  16269.     ]
  16270.     interface Filter : IDispatch
  16271.     {
  16272.  
  16273.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16274.  
  16275.         /**
  16276.          * Returns an Application object that represents the owner of the specified object.
  16277.          */
  16278.         [
  16279.              propget
  16280.             ,helpcontext(0x10120001)
  16281.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  16282.         ]
  16283.         HRESULT  Application(
  16284.             [out, retval] IApplication** prop // The Application object.
  16285.             );
  16286.  
  16287.         /**
  16288.          * Returns a description of the specified object, as a string.
  16289.          */
  16290.         [
  16291.              propget
  16292.             ,helpcontext(0x10120002)
  16293.             ,helpstring("Returns a description of the specified object, as a string.")
  16294.         ]
  16295.         HRESULT  Description(
  16296.             [out, retval] BSTR* prop // A string describing the object.
  16297.             );
  16298.  
  16299.         /**
  16300.          * Returns the last error encountered, as a string.
  16301.          */
  16302.         [
  16303.              propget
  16304.             ,helpcontext(0x10120003)
  16305.             ,helpstring("Returns the last error encountered, as a string.")
  16306.             ,restricted, hidden
  16307.         ]
  16308.         HRESULT  Error(
  16309.             [out, retval] BSTR* prop // The error string.
  16310.             );
  16311.  
  16312.         /**
  16313.          * Returns a file extension supported by the Filter object.
  16314.          */
  16315.         [
  16316.              propget
  16317.             ,helpcontext(0x10120004)
  16318.             ,helpstring("Returns a of file extension supported by the Filter object.")
  16319.         ]
  16320.         HRESULT  Extension(
  16321.             [in, optional] VARIANT* Index, // The index of the extension.
  16322.             [out, retval] BSTR* prop // The file extension, as a string.
  16323.             );
  16324.  
  16325.         /**
  16326.          * Returns the number of file extensions supported by the Filter object.
  16327.          */
  16328.         [
  16329.              propget
  16330.             ,helpcontext(0x10120005)
  16331.             ,helpstring("Returns the number of file extensions supported by the Filter object.")
  16332.         ]
  16333.         HRESULT  ExtensionCount(
  16334.             [out, retval] long* prop // The number of extensions supported.
  16335.             );
  16336.  
  16337.         /**
  16338.          * Returns a the Windows Common Dialog filter string.
  16339.          */
  16340.         [
  16341.              propget
  16342.             ,helpcontext(0x10120006)
  16343.             ,helpstring("Returns the Windows Common Dialog filter string.")
  16344.         ]
  16345.         HRESULT  FilterString(
  16346.             [out, retval] BSTR* prop // The filter string.
  16347.             );
  16348.  
  16349.         /**
  16350.          * Returns the index of the item in the collection.
  16351.          */
  16352.         [
  16353.              propget
  16354.             ,helpcontext(0x10120007)
  16355.             ,helpstring("Returns the index of the item in the collection.")
  16356.         ]
  16357.         HRESULT  Index(
  16358.             [out, retval] long* prop // The index.
  16359.             );
  16360.  
  16361.         /**
  16362.          * Returns True if the Filter object can load from a flat file.
  16363.          */
  16364.         [
  16365.              propget
  16366.             ,helpcontext(0x10120008)
  16367.             ,helpstring("Returns True if the Filter object can load from a flat file.")
  16368.         ]
  16369.         HRESULT  OpenFlat(
  16370.             [out, retval] IMSI_BOOL* prop // True if the Filter object can load from a flat file.
  16371.             );
  16372.  
  16373.         /**
  16374.          * Returns True if the Filter object can load from an OLE stream.
  16375.          */
  16376.         [
  16377.              propget
  16378.             ,helpcontext(0x10120009)
  16379.             ,helpstring("Returns True if the Filter object can load from an OLE stream.")
  16380.         ]
  16381.         HRESULT  OpenStream(
  16382.             [out, retval] IMSI_BOOL* prop // True if the Filter object can load from an OLE stream.
  16383.             );
  16384.  
  16385.         /**
  16386.          * Returns the name of the object, as a string.
  16387.          */
  16388.         [
  16389.              propget
  16390.             ,helpcontext(0x1012000A)
  16391.             ,helpstring("Returns the name of the object, as a string.")
  16392.         ]
  16393.         HRESULT  Name(
  16394.             [out, retval] BSTR* prop // The name of the object.
  16395.             );
  16396.  
  16397.         /**
  16398.          * Returns the parent object for the specified object.
  16399.          */
  16400.         [
  16401.              propget
  16402.             ,helpcontext(0x1012000B)
  16403.             ,helpstring("Returns the parent object for the specified object.")
  16404.         ]
  16405.         HRESULT  Parent(
  16406.             [out, retval] IDispatch** prop // The parent object.
  16407.             );
  16408.  
  16409.         /**
  16410.          * Returns the Filter object's priority.
  16411.          */
  16412.         [
  16413.              propget
  16414.             ,helpcontext(0x1012000C)
  16415.             ,helpstring("Returns the Filter object's priority.")
  16416.         ]
  16417.         HRESULT  Priority(
  16418.             [out, retval] SHORT* prop // The priority.
  16419.             );
  16420.  
  16421.         /**
  16422.          * Sets the Filter object's priority.
  16423.          */
  16424.         [
  16425.              propput
  16426.             ,helpcontext(0x1012000C)
  16427.             ,helpstring("Sets the Filter object's priority.")
  16428.         ]
  16429.         HRESULT  Priority(
  16430.             [in] SHORT prop // The priority.
  16431.             );
  16432.  
  16433.         /**
  16434.          * Returns True if the Filter object can save to a flat file.
  16435.          */
  16436.         [
  16437.              propget
  16438.             ,helpcontext(0x1012000D)
  16439.             ,helpstring("Returns True if the Filter object can save to a flat file.")
  16440.         ]
  16441.         HRESULT  SaveFlat(
  16442.             [out, retval] IMSI_BOOL* prop // True if the Filter object can save to a flat file.
  16443.             );
  16444.  
  16445.         /**
  16446.          * Returns True if the Filter object can save to an OLE stream.
  16447.          */
  16448.         [
  16449.              propget
  16450.             ,helpcontext(0x1012000E)
  16451.             ,helpstring("Returns True if the Filter object can save to an OLE stream.")
  16452.         ]
  16453.         HRESULT  SaveStream(
  16454.             [out, retval] IMSI_BOOL* prop // True if the Filter object can save to an OLE stream.
  16455.             );
  16456.  
  16457.         /**
  16458.          * Returns the internal table entry ID.
  16459.          * Private.
  16460.          */
  16461.         [
  16462.              propget
  16463.             ,restricted
  16464.             ,helpcontext(0x1012000F)
  16465.             ,helpstring("Private.  Returns the internal table entry ID.")
  16466.         ]
  16467.         HRESULT  _TableEntryID(
  16468.             [out, retval] long* prop // The table entry ID.
  16469.             );
  16470.  
  16471.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16472.  
  16473.         /**
  16474.          * Check that the Filter object can read a file or stream.
  16475.          */
  16476.         [
  16477.              helpcontext(0x10120010)
  16478.             ,helpstring("Check that the Filter object can read a file or stream into a Graphics collection.")
  16479.             ,restricted, hidden
  16480.         ]
  16481.         HRESULT  Check(
  16482.             [in, optional] VARIANT* FileName, // A flat file name.
  16483.             [in, optional] VARIANT* IStreamContents, // An OLE stream.
  16484.             [out, retval] IMSI_BOOL* prop // True if the file has the correct format.            );
  16485.             );
  16486.  
  16487.         /**
  16488.          * Deletes the object.
  16489.          */
  16490.         [
  16491.              helpcontext(0x10120011)
  16492.             ,helpstring("Deletes the object.")
  16493.         ]
  16494.         HRESULT  Delete(
  16495.             );
  16496.  
  16497.         /**
  16498.          * Open the graphics from a file or stream into a Graphics collection.
  16499.          */
  16500.         [
  16501.              helpcontext(0x10120012)
  16502.             ,helpstring("Open the graphics from a file or stream into a Graphics collection.")
  16503.             ,restricted, hidden
  16504.         ]
  16505.         HRESULT  Open(
  16506.             [in] Graphics* Dest, // Where to load the new Graphic objects.
  16507.             [in, optional] VARIANT* FileName, // A flat file name.
  16508.             [in, optional] VARIANT* IStreamContents, // An OLE stream.
  16509.             [out, retval] IMSI_BOOL* prop // True if the file was opened.
  16510.             );
  16511.  
  16512.         /**
  16513.          * Runs the setup dialog for loading from a file or stream.
  16514.          */
  16515.         [
  16516.              helpcontext(0x10120013)
  16517.             ,helpstring("Runs the setup dialog for loading from a file or stream.")
  16518.             ,restricted, hidden
  16519.         ]
  16520.         HRESULT  OpenSetupDialog(
  16521.             [out, retval] IMSI_BOOL* prop // True if the dialog was run.
  16522.             );
  16523.  
  16524.         /**
  16525.          * Save the graphics in a Graphics collection to a file or stream.
  16526.          */
  16527.         [
  16528.              helpcontext(0x10120014)
  16529.             ,helpstring("Save the graphics in a Graphics collection to a file or stream.")
  16530.             ,restricted, hidden
  16531.         ]
  16532.         HRESULT  Save(
  16533.             [in] Graphics* Source, // Where to obtain the Graphic objects to save.
  16534.             [in, optional] VARIANT* FileName, // A flat file name.
  16535.             [in, optional] VARIANT* IStreamContents, // An OLE stream.
  16536.             [out, retval] IMSI_BOOL* prop // True if the file was saved.
  16537.             );
  16538.  
  16539.         /**
  16540.          * Runs the setup dialog for saving to a file or stream.
  16541.          */
  16542.         [
  16543.              helpcontext(0x10120015)
  16544.             ,helpstring("Runs the setup dialog for saving to a file or stream.")
  16545.             ,restricted, hidden
  16546.         ]
  16547.         HRESULT  SaveSetupDialog(
  16548.             [out, retval] IMSI_BOOL* prop // True if the dialog was run.
  16549.             );
  16550.  
  16551.         [
  16552.              propget
  16553.             ,helpcontext(0x10120016)
  16554.             ,helpstring("return (set) the filter object capability (is this filter READ, WRITE or READWRITE")
  16555.         ]
  16556.         HRESULT  Capability(
  16557.                                 [out, retval] ImsiFilterCapability *pVal
  16558.                                 );
  16559.         [
  16560.              propput
  16561.             ,helpcontext(0x10120016)
  16562.             ,helpstring("return (set) the filter object capability (is this filter READ, WRITE or READWRITE")
  16563.         ]
  16564.         HRESULT  Capability(
  16565.                         [in] ImsiFilterCapability newVal
  16566.                         );
  16567.         [
  16568.              propget
  16569.             ,helpcontext(0x10120017)
  16570.             ,helpstring("property Hidden")
  16571.         ]
  16572.         HRESULT  Hidden(
  16573.                         [out, retval] IMSI_BOOL *pVal
  16574.                         );
  16575.         [
  16576.               propput
  16577.              ,helpcontext(0x10120017)
  16578.              ,helpstring("property Hidden")
  16579.         ]
  16580.         HRESULT  Hidden(
  16581.                         [in] IMSI_BOOL newVal
  16582.                         );
  16583.     };
  16584.  
  16585.  
  16586.     /**
  16587.      * The collection of objects that control loading from and saving to storage.
  16588.      */
  16589.     [
  16590.          object
  16591.         ,uuid(6A48111C-E531-11CF-A115-00A024158DAF)
  16592.         ,oleautomation
  16593.         ,dual
  16594.         ,helpcontext(0x10130000)
  16595.         ,helpstring("The collection of objects that control loading from and saving to storage.")
  16596.     ]
  16597.     interface Filters : IDispatch
  16598.     {
  16599.  
  16600.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16601.  
  16602.         /**
  16603.          * Returns an Application object that represents the owner of the specified object.
  16604.          */
  16605.         [
  16606.              propget
  16607.             ,helpcontext(0x10130001)
  16608.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  16609.         ]
  16610.         HRESULT  Application(
  16611.             [out, retval] IApplication** prop // The Application object.
  16612.             );
  16613.  
  16614.         /**
  16615.          * Returns the number of items in the collection.
  16616.          */
  16617.         [
  16618.              propget
  16619.             ,helpcontext(0x10130002)
  16620.             ,helpstring("Returns the number of items in the collection.")
  16621.         ]
  16622.         HRESULT  Count(
  16623.             [out, retval] long* prop // The number of items.
  16624.             );
  16625.  
  16626.         /**
  16627.          * Returns part of a collection.
  16628.          */
  16629.         [
  16630.              propget
  16631.             ,id(DISPID_VALUE)
  16632.             ,helpcontext(0x10130003)
  16633.             ,helpstring("Returns part of a collection.")
  16634.         ]
  16635.         HRESULT  Item(
  16636.             [in] VARIANT* Index, // Index of item to return.
  16637.             [out, retval] Filter** prop // The item.
  16638.             );
  16639.  
  16640.         /**
  16641.          * Returns the parent object for the specified object.
  16642.          */
  16643.         [
  16644.              propget
  16645.             ,helpcontext(0x10130004)
  16646.             ,helpstring("Returns the parent object for the specified object.")
  16647.         ]
  16648.         HRESULT  Parent(
  16649.             [out, retval] IDispatch** prop // The parent object.
  16650.             );
  16651.  
  16652.         /**
  16653.          * Creates an enumeration object.
  16654.          */
  16655.         [
  16656.              propget
  16657.             ,restricted
  16658.             ,id(DISPID_NEWENUM)
  16659.             ,helpcontext(0x10130005)
  16660.             ,helpstring("Private.  Creates an enumeration object.")
  16661.         ]
  16662.         HRESULT  _NewEnum(
  16663.             [out, retval] IUnknown** prop // The enumeration object.
  16664.             );
  16665.  
  16666.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16667.  
  16668.         /**
  16669.          * Add all the Filter objects in the specified file to the collection.
  16670.          */
  16671.         [
  16672.              helpcontext(0x10130006)
  16673.             ,helpstring("Add all the Filter objects in the specified file to the collection.")
  16674.             ,restricted, hidden
  16675.         ]
  16676.         HRESULT  Add(
  16677.             [in] BSTR FileName, // The full path name of the file containing Filter objects.
  16678.             [in, out, optional] VARIANT* FiltersAdded // An array of Filter objects.
  16679.             );
  16680.  
  16681.         /**
  16682.          * Returns the index within the table collection of the specified table entry.
  16683.          * Private.
  16684.          */
  16685.         [
  16686.              restricted
  16687.             ,helpcontext(0x10130007)
  16688.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  16689.         ]
  16690.         HRESULT  _FindIndex(
  16691.             [in] long TableEntryID, // The internal table ID.
  16692.             [out, retval] long* prop // The zero based index.
  16693.             );
  16694.  
  16695.         /**
  16696.          * Returns an object from the table collection for the specified table entry.
  16697.          * Private.
  16698.          */
  16699.         [
  16700.              restricted
  16701.             ,helpcontext(0x10130008)
  16702.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  16703.         ]
  16704.         HRESULT  _ObjectFromID(
  16705.             [in] long TableEntryID, // The internal table ID.
  16706.             [out, retval] Filter** prop // The object.
  16707.             );
  16708.     };
  16709.  
  16710.     /**
  16711.      * The collection of layers in a TurboCAD drawing.
  16712.      */
  16713.     [
  16714.          object
  16715.         ,uuid(6A481116-E531-11CF-A115-00A024158DAF)
  16716.         ,oleautomation
  16717.         ,dual
  16718.         ,helpcontext(0x10140000)
  16719.         ,helpstring("The collection of layers in a TurboCAD drawing.")
  16720.     ]
  16721.     interface Layers : IDispatch
  16722.     {
  16723.  
  16724.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16725.  
  16726.         /**
  16727.          * Returns an Application object that represents the owner of the specified object.
  16728.          */
  16729.         [
  16730.              propget
  16731.             ,helpcontext(0x10140001)
  16732.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  16733.         ]
  16734.         HRESULT  Application(
  16735.             [out, retval] IApplication** prop // The Application object.
  16736.             );
  16737.  
  16738.         /**
  16739.          * Returns the number of items in the collection.
  16740.          */
  16741.         [
  16742.              propget
  16743.             ,helpcontext(0x10140002)
  16744.             ,helpstring("Returns the number of items in the collection.")
  16745.         ]
  16746.         HRESULT  Count(
  16747.             [out, retval] long* prop // The number of items.
  16748.             );
  16749.  
  16750.         /**
  16751.          * Returns part of a collection.
  16752.          */
  16753.         [
  16754.              propget
  16755.             ,id(DISPID_VALUE)
  16756.             ,helpcontext(0x10140003)
  16757.             ,helpstring("Returns part of a collection.")
  16758.         ]
  16759.         HRESULT  Item(
  16760.             [in] VARIANT* Index, // Index of item to return.
  16761.             [out, retval] Layer** prop // The item.
  16762.             );
  16763.  
  16764.         /**
  16765.          * Returns the parent object for the specified object.
  16766.          */
  16767.         [
  16768.              propget
  16769.             ,helpcontext(0x10140004)
  16770.             ,helpstring("Returns the parent object for the specified object.")
  16771.         ]
  16772.         HRESULT  Parent(
  16773.             [out, retval] IDispatch** prop // The parent object.
  16774.             );
  16775.  
  16776.         /**
  16777.          * Creates an enumeration object.
  16778.          */
  16779.         [
  16780.              propget
  16781.             ,restricted
  16782.             ,id(DISPID_NEWENUM)
  16783.             ,helpcontext(0x10140005)
  16784.             ,helpstring("Private.  Creates an enumeration object.")
  16785.         ]
  16786.         HRESULT  _NewEnum(
  16787.             [out, retval] IUnknown** prop // The enumeration object.
  16788.             );
  16789.  
  16790.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16791.  
  16792.         /**
  16793.          * Adds a new layer to the collection.
  16794.          */
  16795.         [
  16796.              helpcontext(0x10140006)
  16797.             ,helpstring("Adds a new layer to the collection.")
  16798.         ]
  16799.         HRESULT  Add(
  16800.             [in] BSTR Name, // The name of the Layer object.
  16801.             [in, optional] VARIANT* Visible, // True if Graphic objects on the Layer object are visible.
  16802.             [in, optional] VARIANT* Editable, // True if Graphic objects on the Layer object can be edited.
  16803.             [in, optional] VARIANT* Frozen, // True if Graphic objects on the Layer object cannot be edited or selected.
  16804.             [in, optional] VARIANT* Color, // The color of the Layer object.
  16805.             [in, optional] VARIANT* LineStyle, // The LineStyle object name or object for the Layer object.
  16806.             [in, optional] VARIANT* BrushStyle, // The BrushStyle object name or object for the Layer object.
  16807.             [in, optional] VARIANT* GraphicStyle, // The Style object name or object for the Layer object.
  16808.             [in, optional] VARIANT* ZOrder, // The z order for the Layer object.
  16809.             [out, retval] Layer** prop // The newly created Layer object.
  16810.             );
  16811.  
  16812.         /**
  16813.          * Returns the index within the table collection of the specified table entry.
  16814.          * Private.
  16815.          */
  16816.         [
  16817.              restricted
  16818.             ,helpcontext(0x10140007)
  16819.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  16820.         ]
  16821.         HRESULT  _FindIndex(
  16822.             [in] long TableEntryID, // The internal table ID.
  16823.             [out, retval] long* prop // The zero based index.
  16824.             );
  16825.  
  16826.         /**
  16827.          * Returns an object from the table collection for the specified table entry.
  16828.          * Private.
  16829.          */
  16830.         [
  16831.              restricted
  16832.             ,helpcontext(0x10140008)
  16833.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  16834.         ]
  16835.         HRESULT  _ObjectFromID(
  16836.             [in] long TableEntryID, // The internal table ID.
  16837.             [out, retval] Layer** prop // The object.
  16838.             );
  16839.     };
  16840.  
  16841.  
  16842.  
  16843.     /**
  16844.      * A TurboCAD line style object.
  16845.      */
  16846.     [
  16847.          object
  16848.         ,uuid(6A481117-E531-11CF-A115-00A024158DAF)
  16849.         ,oleautomation
  16850.         ,dual
  16851.         ,helpcontext(0x10150000)
  16852.         ,helpstring("A TurboCAD line style object.")
  16853.     ]
  16854.     interface LineStyle : IDispatch
  16855.     {
  16856.  
  16857.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16858.  
  16859.         /**
  16860.          * Returns an Application object that represents the owner of the specified object.
  16861.          */
  16862.         [
  16863.              propget
  16864.             ,helpcontext(0x10150001)
  16865.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  16866.         ]
  16867.         HRESULT  Application(
  16868.             [out, retval] IApplication** prop // The Application object.
  16869.             );
  16870.  
  16871.         /**
  16872.          * Returns the LineStyle object's description string.
  16873.          */
  16874.         [
  16875.              propget
  16876.             ,helpcontext(0x10150002)
  16877.             ,helpstring("Returns the LineStyle object's description string.")
  16878.         ]
  16879.         HRESULT  Description(
  16880.             [out, retval] BSTR* prop // The description.
  16881.             );
  16882.  
  16883.         /**
  16884.          * Sets the the LineStyle object's description string.
  16885.          */
  16886.         [
  16887.              propput
  16888.             ,helpcontext(0x10150002)
  16889.             ,helpstring("Sets the LineStyle object's description string.")
  16890.         ]
  16891.         HRESULT  Description(
  16892.             [in] BSTR prop // The description.
  16893.             );
  16894.  
  16895.         /**
  16896.          * Returns the Drawing object that owns the object.
  16897.          */
  16898.         [
  16899.              propget
  16900.             ,helpcontext(0x10150003)
  16901.             ,helpstring("Returns the Drawing object that owns the object.")
  16902.             ,restricted, hidden
  16903.         ]
  16904.         HRESULT  Drawing(
  16905.             [out, retval] IDrawing** prop // The Drawing object.
  16906.             );
  16907.  
  16908.         /**
  16909.          * Returns the index of the item in the collection.
  16910.          */
  16911.         [
  16912.              propget
  16913.             ,helpcontext(0x10150004)
  16914.             ,helpstring("Returns the index of the item in the collection.")
  16915.         ]
  16916.         HRESULT  Index(
  16917.             [out, retval] long* prop // The index.
  16918.             );
  16919.  
  16920.         /**
  16921.          * Returns the name of the object, as a string.
  16922.          */
  16923.         [
  16924.              propget
  16925.             ,helpcontext(0x10150005)
  16926.             ,helpstring("Returns the name of the object, as a string.")
  16927.         ]
  16928.         HRESULT  Name(
  16929.             [out, retval] BSTR* prop // The name of the object.
  16930.             );
  16931.  
  16932.         /**
  16933.          * Returns the parent object for the specified object.
  16934.          */
  16935.         [
  16936.              propget
  16937.             ,helpcontext(0x10150006)
  16938.             ,helpstring("Returns the parent object for the specified object.")
  16939.         ]
  16940.         HRESULT  Parent(
  16941.             [out, retval] IDispatch** prop // The parent object.
  16942.             );
  16943.  
  16944.         /**
  16945.          * Returns the total pattern length.
  16946.          */
  16947.         [
  16948.              propget
  16949.             ,helpcontext(0x10150007)
  16950.             ,helpstring("Returns the total pattern length.")
  16951.             ,restricted, hidden
  16952.         ]
  16953.         HRESULT  PatternLength(
  16954.             [out, retval] double* prop // The total pattern length.
  16955.             );
  16956.  
  16957.         /**
  16958.          * Returns the internal table entry ID.
  16959.          * Private.
  16960.          */
  16961.         [
  16962.              propget
  16963.             ,restricted
  16964.             ,helpcontext(0x10150008)
  16965.             ,helpstring("Private.  Returns the internal table entry ID.")
  16966.         ]
  16967.         HRESULT  _TableEntryID(
  16968.             [out, retval] long* prop // The table entry ID.
  16969.             );
  16970.  
  16971.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16972.  
  16973.         /**
  16974.          * Deletes the object.
  16975.          */
  16976.         [
  16977.              helpcontext(0x10150009)
  16978.             ,helpstring("Deletes the object.")
  16979.             ,hidden, restricted
  16980.         ]
  16981.         HRESULT  Delete(
  16982.             );
  16983.  
  16984.         /**
  16985.          * Fills an array with dash lengths that make up the LineStyle object.
  16986.          */
  16987.         [
  16988.              helpcontext(0x1015000A)
  16989.             ,helpstring("Fills an array with dash lengths that make up the LineStyle object.")
  16990.             ,restricted, hidden
  16991.         ]
  16992.         HRESULT  SetDashes(
  16993.             [in] VARIANT* Dashes // An array of doubles.
  16994.             );
  16995.  
  16996.         /**
  16997.          * Fills an array with dash lengths that make up the LineStyle object.
  16998.          */
  16999.         [
  17000.              helpcontext(0x1015000B)
  17001.             ,helpstring("Fills an array with dash lengths that make up the LineStyle object.")
  17002.         ]
  17003.         HRESULT  GetDashes(
  17004.             [out] VARIANT* Dashes // An array of doubles.
  17005.             );
  17006.  
  17007.         /**
  17008.          * Duplicates the object and returns a reference to the new copy.
  17009.          */
  17010.         [
  17011.              helpcontext(0x1015000C)
  17012.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  17013.             ,restricted, hidden
  17014.         ]
  17015.         HRESULT  Duplicate(
  17016.             [out, retval] LineStyle** prop // The duplicated LineStyle object.
  17017.             );
  17018.  
  17019.     };
  17020.  
  17021.  
  17022.     /**
  17023.      * The collection of LineStyle objects within a Drawing object.
  17024.      */
  17025.     [
  17026.          object
  17027.         ,uuid(6A481118-E531-11CF-A115-00A024158DAF)
  17028.         ,oleautomation
  17029.         ,dual
  17030.         ,helpcontext(0x10160000)
  17031.         ,helpstring("The collection of LineStyle objects within a Drawing object.")
  17032.     ]
  17033.     interface LineStyles : IDispatch
  17034.     {
  17035.  
  17036.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17037.  
  17038.         /**
  17039.          * Returns an Application object that represents the owner of the specified object.
  17040.          */
  17041.         [
  17042.              propget
  17043.             ,helpcontext(0x10160001)
  17044.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17045.         ]
  17046.         HRESULT  Application(
  17047.             [out, retval] IApplication** prop // The Application object.
  17048.             );
  17049.  
  17050.         /**
  17051.          * Returns the number of items in the collection.
  17052.          */
  17053.         [
  17054.              propget
  17055.             ,helpcontext(0x10160002)
  17056.             ,helpstring("Returns the number of items in the collection.")
  17057.         ]
  17058.         HRESULT  Count(
  17059.             [out, retval] long* prop // The number of items.
  17060.             );
  17061.  
  17062.         /**
  17063.          * Returns part of a collection.
  17064.          */
  17065.         [
  17066.              propget
  17067.             ,id(DISPID_VALUE)
  17068.             ,helpcontext(0x10160003)
  17069.             ,helpstring("Returns part of a collection.")
  17070.         ]
  17071.         HRESULT  Item(
  17072.             [in] VARIANT* Index, // Index of item to return.
  17073.             [out, retval] LineStyle** prop // The item.
  17074.             );
  17075.  
  17076.         /**
  17077.          * Returns the parent object for the specified object.
  17078.          */
  17079.         [
  17080.              propget
  17081.             ,helpcontext(0x10160004)
  17082.             ,helpstring("Returns the parent object for the specified object.")
  17083.         ]
  17084.         HRESULT  Parent(
  17085.             [out, retval] IDispatch** prop // The parent object.
  17086.             );
  17087.  
  17088.         /**
  17089.          * Creates an enumeration object.
  17090.          */
  17091.         [
  17092.              propget
  17093.             ,restricted
  17094.             ,id(DISPID_NEWENUM)
  17095.             ,helpcontext(0x10160005)
  17096.             ,helpstring("Private.  Creates an enumeration object.")
  17097.         ]
  17098.         HRESULT  _NewEnum(
  17099.             [out, retval] IUnknown** prop // The enumeration object.
  17100.             );
  17101.  
  17102.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17103.  
  17104.         /**
  17105.          * Adds a new LineStyle object to the collection.
  17106.          */
  17107.         [
  17108.              helpcontext(0x10160006)
  17109.             ,helpstring("Adds a new LineStyle object to the collection.")
  17110.         ]
  17111.         HRESULT  Add(
  17112.             [in] BSTR Name, // The name of the LineStyle object.
  17113.             [in] VARIANT* Dashes, // An array of dash lengths.
  17114.             [in, optional] VARIANT* Description, // A description string.
  17115.             [out, retval] LineStyle** prop // The newly created LineStyle object.
  17116.             );
  17117.  
  17118.         /**
  17119.          * Returns the index within the table collection of the specified table entry.
  17120.          * Private.
  17121.          */
  17122.         [
  17123.              restricted
  17124.             ,helpcontext(0x10160007)
  17125.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  17126.         ]
  17127.         HRESULT  _FindIndex(
  17128.             [in] long TableEntryID, // The internal table ID.
  17129.             [out, retval] long* prop // The zero based index.
  17130.             );
  17131.  
  17132.         /**
  17133.          * Returns an object from the table collection for the specified table entry.
  17134.          * Private.
  17135.          */
  17136.         [
  17137.              restricted
  17138.             ,helpcontext(0x10160008)
  17139.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  17140.         ]
  17141.         HRESULT  _ObjectFromID(
  17142.             [in] long TableEntryID, // The internal table ID.
  17143.             [out, retval] LineStyle** prop // The object.
  17144.             );
  17145.  
  17146.     };
  17147.  
  17148.     /**
  17149.      * A TurboCAD brush style object.
  17150.      */
  17151.     [
  17152.          object
  17153.         ,uuid(6A481119-E531-11CF-A115-00A024158DAF)
  17154.         ,oleautomation
  17155.         ,dual
  17156.         ,helpcontext(0x10170000)
  17157.         ,helpstring("A TurboCAD brush style object.")
  17158.     ]
  17159.     interface BrushStyle : IDispatch
  17160.     {
  17161.  
  17162.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17163.  
  17164.         /**
  17165.          * Returns an Application object that represents the owner of the specified object.
  17166.          */
  17167.         [
  17168.              propget
  17169.             ,helpcontext(0x10170001)
  17170.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17171.         ]
  17172.         HRESULT  Application(
  17173.             [out, retval] IApplication** prop // The Application object.
  17174.             );
  17175.  
  17176.         /**
  17177.          * Returns the BrushStyle object's bitmap file name.
  17178.          */
  17179.         [
  17180.              propget
  17181.             ,helpcontext(0x10170002)
  17182.             ,helpstring("Returns the BrushStyle object's bitmap file name.")
  17183.             ,restricted, hidden
  17184.         ]
  17185.         HRESULT  Bitmap(
  17186.             [out, retval] BSTR* prop // The bitmap file name.
  17187.             );
  17188.  
  17189.         /**
  17190.          * Sets the BrushStyle object's bitmap file name.
  17191.          */
  17192.         [
  17193.              propput
  17194.             ,helpcontext(0x10170002)
  17195.             ,helpstring("Sets the BrushStyle object's bitmap file name.")
  17196.             ,restricted, hidden
  17197.         ]
  17198.         HRESULT  Bitmap(
  17199.             [in] BSTR prop // The bitmap file name.
  17200.             );
  17201.  
  17202.         /**
  17203.          * Returns the BrushStyle object's color.
  17204.          */
  17205.         [
  17206.              propget
  17207.             ,helpcontext(0x10170003)
  17208.             ,helpstring("Returns the BrushStyle object's color.")
  17209.             ,restricted, hidden
  17210.         ]
  17211.         HRESULT  Color(
  17212.             [out, retval] IMSI_COLOR* prop // The color.
  17213.             );
  17214.  
  17215.         /**
  17216.          * Sets the BrushStyle object's color.
  17217.          */
  17218.         [
  17219.              propput
  17220.             ,helpcontext(0x10170003)
  17221.             ,helpstring("Sets the BrushStyle object's color.")
  17222.             ,restricted, hidden
  17223.         ]
  17224.         HRESULT  Color(
  17225.             [in] IMSI_COLOR prop // The color.
  17226.             );
  17227.  
  17228.         /**
  17229.          * Returns the BrushStyle object's description string.
  17230.          */
  17231.         [
  17232.              propget
  17233.             ,helpcontext(0x10170004)
  17234.             ,helpstring("Returns the BrushStyle object's description string.")
  17235.         ]
  17236.         HRESULT  Description(
  17237.             [out, retval] BSTR* prop // The description.
  17238.             );
  17239.  
  17240.         /**
  17241.          * Sets the the BrushStyle object's description string.
  17242.          */
  17243.         [
  17244.              propput
  17245.             ,helpcontext(0x10170004)
  17246.             ,helpstring("Sets the BrushStyle object's description string.")
  17247.         ]
  17248.         HRESULT  Description(
  17249.             [in] BSTR prop // The description.
  17250.             );
  17251.  
  17252.         /**
  17253.          * Returns the Drawing object that owns the object.
  17254.          */
  17255.         [
  17256.              propget
  17257.             ,helpcontext(0x10170005)
  17258.             ,helpstring("Returns the Drawing object that owns the object.")
  17259.             ,restricted, hidden
  17260.         ]
  17261.         HRESULT  Drawing(
  17262.             [out, retval] IDrawing** prop // The Drawing object.
  17263.             );
  17264.  
  17265.         /**
  17266.          * Returns the BrushStyle object's Windows hatch style.
  17267.          */
  17268.         [
  17269.              propget
  17270.             ,helpcontext(0x10170006)
  17271.             ,helpstring("Returns the BrushStyle object's Windows hatch style.")
  17272.             ,restricted, hidden
  17273.         ]
  17274.         HRESULT  HatchStyle(
  17275.             [out, retval] ImsiHatchStyle* prop // The hatch style.
  17276.             );
  17277.  
  17278.         /**
  17279.          * Sets the BrushStyle object's Windows hatch style.
  17280.          */
  17281.         [
  17282.              propput
  17283.             ,helpcontext(0x10170006)
  17284.             ,helpstring("Sets the BrushStyle object's Windows hatch style.")
  17285.             ,restricted, hidden
  17286.         ]
  17287.         HRESULT  HatchStyle(
  17288.             [in] ImsiHatchStyle prop // The hatch style.
  17289.             );
  17290.  
  17291.         /**
  17292.          * Returns the index of the item in the collection.
  17293.          */
  17294.         [
  17295.              propget
  17296.             ,helpcontext(0x10170007)
  17297.             ,helpstring("Returns the index of the item in the collection.")
  17298.         ]
  17299.         HRESULT  Index(
  17300.             [out, retval] long* prop // The index.
  17301.             );
  17302.  
  17303.         /**
  17304.          * Returns the name of the object, as a string.
  17305.          */
  17306.         [
  17307.              propget
  17308.             ,helpcontext(0x10170008)
  17309.             ,helpstring("Returns the name of the object, as a string.")
  17310.         ]
  17311.         HRESULT  Name(
  17312.             [out, retval] BSTR* prop // The name of the object.
  17313.             );
  17314.  
  17315.         /**
  17316.          * Returns the parent object for the specified object.
  17317.          */
  17318.         [
  17319.              propget
  17320.             ,helpcontext(0x10170009)
  17321.             ,helpstring("Returns the parent object for the specified object.")
  17322.         ]
  17323.         HRESULT  Parent(
  17324.             [out, retval] IDispatch** prop // The parent object.
  17325.             );
  17326.  
  17327.         /**
  17328.          * Returns the BrushStyle object's BrushPatterns collection.
  17329.          */
  17330.         [
  17331.              propget
  17332.             ,restricted, hidden
  17333.             ,helpcontext(0x1017000A)
  17334.             ,helpstring("Returns the BrushStyle object's BrushPatterns collection.")
  17335.         ]
  17336.         HRESULT  Patterns(
  17337.             [out, retval] BrushPatterns** Patterns // The BrushStyle object's BrushPatterns collection.
  17338.             );
  17339.  
  17340.         /**
  17341.          * Returns the type of the BrushStyle object.
  17342.          */
  17343.         [
  17344.              propget
  17345.             ,helpcontext(0x1017000B)
  17346.             ,helpstring("Returns the type of the BrushStyle object.")
  17347.         ]
  17348.         HRESULT  Type(
  17349.             [out, retval] ImsiBrushType* prop // The type.
  17350.             );
  17351.  
  17352.         /**
  17353.          * Returns the internal table entry ID.
  17354.          * Private.
  17355.          */
  17356.         [
  17357.              propget
  17358.             ,restricted
  17359.             ,helpcontext(0x1017000C)
  17360.             ,helpstring("Private.  Returns the internal table entry ID.")
  17361.         ]
  17362.         HRESULT  _TableEntryID(
  17363.             [out, retval] long* prop // The table entry ID.
  17364.             );
  17365.  
  17366.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17367.  
  17368.         /**
  17369.          * Deletes the object.
  17370.          */
  17371.         [
  17372.              helpcontext(0x1017000D)
  17373.             ,helpstring("Deletes the object.")
  17374.             ,hidden, restricted
  17375.         ]
  17376.         HRESULT  Delete(
  17377.             );
  17378.  
  17379.     };
  17380.  
  17381.     /**
  17382.      * The collection of BrushStyle objects within a Drawing object.
  17383.      */
  17384.     [
  17385.          object
  17386.         ,uuid(6A48111A-E531-11CF-A115-00A024158DAF)
  17387.         ,oleautomation
  17388.         ,dual
  17389.         ,helpcontext(0x10180000)
  17390.         ,helpstring("The collection of BrushStyle objects within a Drawing object.")
  17391.     ]
  17392.     interface BrushStyles : IDispatch
  17393.     {
  17394.  
  17395.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17396.  
  17397.         /**
  17398.          * Returns an Application object that represents the owner of the specified object.
  17399.          */
  17400.         [
  17401.              propget
  17402.             ,helpcontext(0x10180001)
  17403.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17404.         ]
  17405.         HRESULT  Application(
  17406.             [out, retval] IApplication** prop // The Application object.
  17407.             );
  17408.  
  17409.         /**
  17410.          * Returns the number of items in the collection.
  17411.          */
  17412.         [
  17413.              propget
  17414.             ,helpcontext(0x10180002)
  17415.             ,helpstring("Returns the number of items in the collection.")
  17416.         ]
  17417.         HRESULT  Count(
  17418.             [out, retval] long* prop // The number of items.
  17419.             );
  17420.  
  17421.         /**
  17422.          * Returns part of a collection.
  17423.          */
  17424.         [
  17425.              propget
  17426.             ,id(DISPID_VALUE)
  17427.             ,helpcontext(0x10180003)
  17428.             ,helpstring("Returns part of a collection.")
  17429.         ]
  17430.         HRESULT  Item(
  17431.             [in] VARIANT* Index, // Index of item to return.
  17432.             [out, retval] BrushStyle** prop // The item.
  17433.             );
  17434.  
  17435.         /**
  17436.          * Returns the parent object for the specified object.
  17437.          */
  17438.         [
  17439.              propget
  17440.             ,helpcontext(0x10180004)
  17441.             ,helpstring("Returns the parent object for the specified object.")
  17442.         ]
  17443.         HRESULT  Parent(
  17444.             [out, retval] IDispatch** prop // The parent object.
  17445.             );
  17446.  
  17447.         /**
  17448.          * Creates an enumeration object.
  17449.          */
  17450.         [
  17451.              propget
  17452.             ,restricted
  17453.             ,id(DISPID_NEWENUM)
  17454.             ,helpcontext(0x10180005)
  17455.             ,helpstring("Private.  Creates an enumeration object.")
  17456.         ]
  17457.         HRESULT  _NewEnum(
  17458.             [out, retval] IUnknown** prop // The enumeration object.
  17459.             );
  17460.  
  17461.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17462.  
  17463.         /**
  17464.          * Adds a new BrushStyle object to the collection.
  17465.          */
  17466.         [
  17467.              helpcontext(0x10180006)
  17468.             ,helpstring("Adds a new BrushStyle object to the collection.")
  17469.             ,restricted, hidden
  17470.         ]
  17471.         HRESULT  Add(
  17472.             [in] BSTR Name, // The name of the BrushStyle object.
  17473.             [in, optional] VARIANT* HatchStyle, // A Windows hatch style.
  17474.             [in, optional] VARIANT* BitmapFileName, // A bitmap file.
  17475.             [in, optional] VARIANT* Patterns, // An array of BrushPattern objects.
  17476.             [in, optional] VARIANT* Description, // A description string.
  17477.             [out, retval] BrushStyle** prop // The newly created BrushStyle object.
  17478.             );
  17479.  
  17480.         /**
  17481.          * Returns the index within the table collection of the specified table entry.
  17482.          * Private.
  17483.          */
  17484.         [
  17485.              restricted
  17486.             ,helpcontext(0x10180007)
  17487.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  17488.         ]
  17489.         HRESULT  _FindIndex(
  17490.             [in] long TableEntryID, // The internal table ID.
  17491.             [out, retval] long* prop // The zero based index.
  17492.             );
  17493.  
  17494.         /**
  17495.          * Returns an object from the table collection for the specified table entry.
  17496.          * Private.
  17497.          */
  17498.         [
  17499.              restricted
  17500.             ,helpcontext(0x10180008)
  17501.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  17502.         ]
  17503.         HRESULT  _ObjectFromID(
  17504.             [in] long TableEntryID, // The internal table ID.
  17505.             [out, retval] BrushStyle** prop // The object.
  17506.             );
  17507.         };
  17508.  
  17509.  
  17510.  
  17511.     /**
  17512.      * A vector brush pattern, part of a BrushStyle object.
  17513.      */
  17514.     [
  17515.          object
  17516.         ,uuid(6A481145-E531-11CF-A115-00A024158DAF)
  17517.         ,oleautomation
  17518.         ,dual
  17519.         ,helpcontext(0x10190000)
  17520.         ,helpstring("A vector brush pattern, part of a BrushStyle object.")
  17521.         ,restricted, hidden
  17522.     ]
  17523.     interface IBrushPattern : IDispatch
  17524.     {
  17525.  
  17526.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17527.  
  17528.         /**
  17529.          * Returns an Application object that represents the owner of the specified object.
  17530.          */
  17531.         [
  17532.              propget
  17533.             ,helpcontext(0x10190001)
  17534.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17535.         ]
  17536.         HRESULT  Application(
  17537.             [out, retval] IApplication** prop // The Application object.
  17538.             );
  17539.  
  17540.         /**
  17541.          * Returns the number of items in the BrushPattern object.
  17542.          */
  17543.         [
  17544.              propget
  17545.             ,helpcontext(0x10190002)
  17546.             ,helpstring("Returns the number of items in the BrushPattern object.")
  17547.         ]
  17548.         HRESULT  Count(
  17549.             [out, retval] long* prop // The number of items.
  17550.             );
  17551.  
  17552.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17553.  
  17554.         /**
  17555.          * Adds an item to the BrushPattern object.
  17556.          */
  17557.         [
  17558.              helpcontext(0x10190003)
  17559.             ,helpstring("Adds an item to the BrushPattern object.")
  17560.         ]
  17561.         HRESULT  AddItem(
  17562.             [in] VARIANT* Dashes, // The line style.
  17563.             [in] double XOrigin, // The x coordinate of the pattern's origin.
  17564.             [in] double YOrigin, // The y coordinate of the pattern's origin.
  17565.             [in] double Angle // The angle of the line in radians.
  17566.             );
  17567.  
  17568.         /**
  17569.          * Returns an item in the BrushPattern object.
  17570.          */
  17571.         [
  17572.              helpcontext(0x10190004)
  17573.             ,helpstring("Returns an item in the BrushPattern object.")
  17574.         ]
  17575.         HRESULT  GetItem(
  17576.             [in] long Index, // Index of item to return.
  17577.             [out] VARIANT* Dashes, // The line style.
  17578.             [out] double* XOrigin, // The x coordinate of the pattern's origin.
  17579.             [out] double* YOrigin, // The y coordinate of the pattern's origin.
  17580.             [out] double* Width, // The width (x axis) of the pattern's origin.
  17581.             [out] double* Height, // The height (y axis) of the pattern's origin.
  17582.             [out] double* Angle // The angle of the line in radians.
  17583.             );
  17584.  
  17585.         /**
  17586.          * Sets an item in the BrushPattern object.
  17587.          */
  17588.         [
  17589.              helpcontext(0x10190005)
  17590.             ,helpstring("Sets an item in the BrushPattern object.")
  17591.         ]
  17592.         HRESULT  SetItem(
  17593.             [in] long Index, // Index of item to set.
  17594.             [in] VARIANT* Dashes, // The line style.
  17595.             [in] double XOrigin, // The x coordinate of the pattern's origin.
  17596.             [in] double YOrigin, // The y coordinate of the pattern's origin.
  17597.             [in] double Width, // The width (x axis) of the pattern's origin.
  17598.             [in] double Height, // The height (y axis) of the pattern's origin.
  17599.             [in] double Angle // The angle of the line in radians.
  17600.             );
  17601.     };
  17602.  
  17603.  
  17604.  
  17605.     /**
  17606.      * A collection of vector brush patterns, part of a BrushStyle object.
  17607.      */
  17608.     [
  17609.          object
  17610.         ,restricted, hidden
  17611.         ,uuid(6A481146-E531-11CF-A115-00A024158DAF)
  17612.         ,oleautomation
  17613.         ,dual
  17614.         ,helpcontext(0x101A0000)
  17615.         ,helpstring("A collection of vector brush patterns, part of a BrushStyle object.")
  17616.     ]
  17617.     interface BrushPatterns : IDispatch
  17618.     {
  17619.  
  17620.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17621.  
  17622.         /**
  17623.          * Returns an Application object that represents the owner of the specified object.
  17624.          */
  17625.         [
  17626.              propget
  17627.             ,helpcontext(0x101A0001)
  17628.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17629.         ]
  17630.         HRESULT  Application(
  17631.             [out, retval] IApplication** prop // The Application object.
  17632.             );
  17633.  
  17634.         /**
  17635.          * Returns the number of items in the collection.
  17636.          */
  17637.         [
  17638.              propget
  17639.             ,helpcontext(0x101A0002)
  17640.             ,helpstring("Returns the number of items in the collection.")
  17641.         ]
  17642.         HRESULT  Count(
  17643.             [out, retval] long* prop // The number of items.
  17644.             );
  17645.  
  17646.         /**
  17647.          * Returns an item in the collection.
  17648.          * Index can be specified as a long integer or as a string (Drawing name).
  17649.          */
  17650.         [
  17651.              propget
  17652.             ,id(DISPID_VALUE)
  17653.             ,helpcontext(0x101A0003)
  17654.             ,helpstring("Returns an item in the collection.")
  17655.         ]
  17656.         HRESULT  Item(
  17657.             [in] VARIANT* Index, // Index of item to return.
  17658.             [out, retval] IDrawing** prop // The item.
  17659.             );
  17660.  
  17661.         /**
  17662.          * Returns the parent object for the specified object.
  17663.          */
  17664.         [
  17665.              propget
  17666.             ,helpcontext(0x101A0004)
  17667.             ,helpstring("Returns the parent object for the specified object.")
  17668.         ]
  17669.         HRESULT  Parent(
  17670.             [out, retval] IDispatch** prop // The parent object.
  17671.             );
  17672.  
  17673.         /**
  17674.          * Creates an enumeration object.
  17675.          */
  17676.         [
  17677.              propget
  17678.             ,restricted
  17679.             ,id(DISPID_NEWENUM)
  17680.             ,helpcontext(0x101A0005)
  17681.             ,helpstring("Private.  Creates an enumeration object.")
  17682.         ]
  17683.         HRESULT  _NewEnum(
  17684.             [out, retval] IUnknown** prop // The enumeration object.
  17685.             );
  17686.  
  17687.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17688.  
  17689.     };
  17690.  
  17691.  
  17692.  
  17693.     /**
  17694.      * An object that allows looking up colors by name.
  17695.      */
  17696.     [
  17697.          object
  17698.         ,uuid(6A48111D-E531-11CF-A115-00A024158DAF)
  17699.         ,oleautomation
  17700.         ,dual
  17701.         ,helpcontext(0x101B0000)
  17702.         ,helpstring("An object that allows looking up colors by name.")
  17703.     ]
  17704.     interface NamedColor : IDispatch
  17705.     {
  17706.     
  17707.      ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17708.  
  17709.          /**
  17710.         * Returns an Application object that represents the owner of the specified object.
  17711.         */
  17712.         [
  17713.              propget
  17714.             ,helpcontext(0x101B0001)
  17715.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17716.         ]
  17717.         HRESULT  Application(
  17718.             [out, retval] IApplication** prop // The Application object.
  17719.             );
  17720.  
  17721.         /**
  17722.          * Returns the blue value of the color.
  17723.          */
  17724.         [
  17725.              propget
  17726.             ,helpcontext(0x101B0002)
  17727.             ,helpstring("Returns the blue value of the color.")
  17728.         ]
  17729.         HRESULT  Blue(
  17730.             [out, retval] double* prop // The blue value, in the range 0..1.
  17731.             );
  17732.  
  17733.         /**
  17734.          * Sets the blue value of the color.
  17735.          */
  17736.         [
  17737.              propput
  17738.             ,helpcontext(0x101B0002)
  17739.             ,helpstring("Sets the blue value of the color.")
  17740.         ]
  17741.         HRESULT  Blue(
  17742.             [in] double prop // The blue value, in the range 0..1.
  17743.             );
  17744.  
  17745.         /**
  17746.          * Returns the brightness value of the color.
  17747.          */
  17748.         [
  17749.              propget
  17750.             ,helpcontext(0x101B0003)
  17751.             ,helpstring("Returns the brightness value of the color.")
  17752.         ]
  17753.         HRESULT  Brightness(
  17754.             [out, retval] double* prop // The brightness value, in the range 0..1.
  17755.             );
  17756.  
  17757.         /**
  17758.          * Sets the brightness value of the color.
  17759.          */
  17760.         [
  17761.              propput
  17762.             ,helpcontext(0x101B0003)
  17763.             ,helpstring("Sets the brightness value of the color.")
  17764.         ]
  17765.         HRESULT  Brightness(
  17766.             [in] double prop // The brightness value, in the range 0..1.
  17767.             );
  17768.  
  17769.         /**
  17770.          * Returns the RGB value of the color.
  17771.          */
  17772.         [
  17773.              propget, id(DISPID_VALUE)
  17774.             ,helpcontext(0x101B0004)
  17775.             ,helpstring("Returns the RGB value of the color.")
  17776.         ]
  17777.         HRESULT  Color(
  17778.             [out, retval] IMSI_COLOR* prop // The RGB color.
  17779.             );
  17780.  
  17781.         /**
  17782.          * Sets the RGB value of the color.
  17783.          */
  17784.         [
  17785.              propput, id(DISPID_VALUE)
  17786.             ,helpcontext(0x101B0004)
  17787.             ,helpstring("Sets the RGB value of the color.")
  17788.         ]
  17789.         HRESULT  Color(
  17790.             [in] IMSI_COLOR prop // The RGB color.
  17791.             );
  17792.  
  17793.         /**
  17794.          * Returns the green value of the color.
  17795.          */
  17796.         [
  17797.              propget
  17798.             ,helpcontext(0x101B0005)
  17799.             ,helpstring("Returns the green value of the color.")
  17800.         ]
  17801.         HRESULT  Green(
  17802.             [out, retval] double* prop // The green value, in the range 0..1.
  17803.             );
  17804.  
  17805.         /**
  17806.          * Sets the green value of the color.
  17807.          */
  17808.         [
  17809.              propput
  17810.             ,helpcontext(0x101B0005)
  17811.             ,helpstring("Sets the green value of the color.")
  17812.         ]
  17813.         HRESULT  Green(
  17814.             [in] double prop // The green value, in the range 0..1.
  17815.             );
  17816.  
  17817.         /**
  17818.          * Returns the hue of the color.
  17819.          */
  17820.         [
  17821.              propget
  17822.             ,helpcontext(0x101B0006)
  17823.             ,helpstring("Returns the hue of the color.")
  17824.         ]
  17825.         HRESULT  Hue(
  17826.             [out, retval] double* prop // The hue, in the range 0..1.
  17827.             );
  17828.  
  17829.         /**
  17830.          * Sets the hue of the color.
  17831.          */
  17832.         [
  17833.              propput
  17834.             ,helpcontext(0x101B0006)
  17835.             ,helpstring("Sets the hue of the color.")
  17836.         ]
  17837.         HRESULT  Hue(
  17838.             [in] double prop // The hue, in the range 0..1.
  17839.             );
  17840.  
  17841.         /**
  17842.          * Returns the index of the item in the collection.
  17843.          */
  17844.         [
  17845.              propget
  17846.             ,helpcontext(0x101B0007)
  17847.             ,helpstring("Returns the index of the item in the collection.")
  17848.         ]
  17849.         HRESULT  Index(
  17850.             [out, retval] long* prop // The index.
  17851.             );
  17852.  
  17853.         /**
  17854.          * Returns the name of the object, as a string.
  17855.          */
  17856.         [
  17857.              propget
  17858.             ,helpcontext(0x101B0008)
  17859.             ,helpstring("Returns the name of the object, as a string.")
  17860.         ]
  17861.         HRESULT  Name(
  17862.             [out, retval] BSTR* prop // The name of the object.
  17863.             );
  17864.  
  17865.         /**
  17866.          * Sets the name of the object.
  17867.          */
  17868.         [
  17869.              propput
  17870.             ,helpcontext(0x101B0008)
  17871.             ,helpstring("Sets the name of the object.")
  17872.         ]
  17873.         HRESULT  Name(
  17874.             [in] BSTR prop // The name of the object.
  17875.             );
  17876.  
  17877.         /**
  17878.          * Returns the parent object for the specified object.
  17879.          */
  17880.         [
  17881.              propget
  17882.             ,helpcontext(0x101B0009)
  17883.             ,helpstring("Returns the parent object for the specified object.")
  17884.         ]
  17885.         HRESULT  Parent(
  17886.             [out, retval] IDispatch** prop // The parent object.
  17887.             );
  17888.  
  17889.         /**
  17890.          * Returns the red value of the color.
  17891.          */
  17892.         [
  17893.              propget
  17894.             ,helpcontext(0x101B000A)
  17895.             ,helpstring("Returns the red value of the color.")
  17896.         ]
  17897.         HRESULT  Red(
  17898.             [out, retval] double* prop // The red value, in the range 0..1.
  17899.             );
  17900.  
  17901.         /**
  17902.          * Sets the red value of the color.
  17903.          */
  17904.         [
  17905.              propput
  17906.             ,helpcontext(0x101B000A)
  17907.             ,helpstring("Sets the red value of the color.")
  17908.         ]
  17909.         HRESULT  Red(
  17910.             [in] double prop // The red value, in the range 0..1.
  17911.             );
  17912.  
  17913.         /**
  17914.          * Returns the saturation value of the color.
  17915.          */
  17916.         [
  17917.              propget
  17918.             ,helpcontext(0x101B000B)
  17919.             ,helpstring("Returns the saturation value of the color.")
  17920.         ]
  17921.         HRESULT  Saturation(
  17922.             [out, retval] double* prop // The saturation value, in the range 0..1.
  17923.             );
  17924.  
  17925.         /**
  17926.          * Sets the saturation value of the color.
  17927.          */
  17928.         [
  17929.              propput
  17930.             ,helpcontext(0x101B000B)
  17931.             ,helpstring("Sets the saturation value of the color.")
  17932.         ]
  17933.         HRESULT  Saturation(
  17934.             [in] double prop // The saturation value, in the range 0..1.
  17935.             );
  17936.  
  17937.         /**
  17938.          * Returns the internal table entry ID.
  17939.          * Private.
  17940.          */
  17941.         [
  17942.              propget
  17943.             ,restricted
  17944.             ,helpcontext(0x101B000C)
  17945.             ,helpstring("Private.  Returns the internal table entry ID.")
  17946.         ]
  17947.         HRESULT  _TableEntryID(
  17948.             [out, retval] long* prop // The table entry ID.
  17949.             );
  17950.  
  17951.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17952.  
  17953.         /**
  17954.          * Deletes the object.
  17955.          */
  17956.         [
  17957.              helpcontext(0x101B000D)
  17958.             ,helpstring("Deletes the object.")
  17959.         ]
  17960.         HRESULT  Delete(
  17961.             );
  17962.  
  17963.         /**
  17964.          * Duplicates the object and returns a reference to the new copy.
  17965.          */
  17966.         [
  17967.              helpcontext(0x101B000E)
  17968.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  17969.         ]
  17970.         HRESULT  Duplicate(
  17971.             [in] BSTR Name, // The name of the NamedColor object.
  17972.             [out, retval] NamedColor** prop // The duplicated NamedColor object.
  17973.             );
  17974.  
  17975.     };
  17976.  
  17977.     /**
  17978.      * The collection of NamedColor objects.
  17979.      */
  17980.     [
  17981.          object
  17982.         ,uuid(6A48111E-E531-11CF-A115-00A024158DAF)
  17983.         ,oleautomation
  17984.         ,dual
  17985.         ,helpcontext(0x101C0000)
  17986.         ,helpstring("The collection of NamedColor objects.")
  17987.     ]
  17988.     interface NamedColors : IDispatch
  17989.     {
  17990.  
  17991.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17992.  
  17993.         /**
  17994.          * Returns an Application object that represents the owner of the specified object.
  17995.          */
  17996.         [
  17997.              propget
  17998.             ,helpcontext(0x101C0001)
  17999.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  18000.         ]
  18001.         HRESULT  Application(
  18002.             [out, retval] IApplication** prop // The Application object.
  18003.             );
  18004.  
  18005.         /**
  18006.          * Returns the number of items in the collection.
  18007.          */
  18008.         [
  18009.              propget
  18010.             ,helpcontext(0x101C0002)
  18011.             ,helpstring("Returns the number of items in the collection.")
  18012.         ]
  18013.         HRESULT  Count(
  18014.             [out, retval] long* prop // The number of items.
  18015.             );
  18016.  
  18017.         /**
  18018.          * Returns part of a collection.
  18019.          */
  18020.         [
  18021.              propget
  18022.             ,id(DISPID_VALUE)
  18023.             ,helpcontext(0x101C0003)
  18024.             ,helpstring("Returns part of a collection.")
  18025.         ]
  18026.         HRESULT  Item(
  18027.             [in] VARIANT* Index, // Index of item to return.
  18028.             [out, retval] NamedColor** prop // The item.
  18029.             );
  18030.  
  18031.         /**
  18032.          * Returns the parent object for the specified object.
  18033.          */
  18034.         [
  18035.              propget
  18036.             ,helpcontext(0x101C0004)
  18037.             ,helpstring("Returns the parent object for the specified object.")
  18038.         ]
  18039.         HRESULT  Parent(
  18040.             [out, retval] IDispatch** prop // The parent object.
  18041.             );
  18042.  
  18043.         /**
  18044.          * Creates an enumeration object.
  18045.          */
  18046.         [
  18047.              propget
  18048.             ,restricted
  18049.             ,id(DISPID_NEWENUM)
  18050.             ,helpcontext(0x101C0005)
  18051.             ,helpstring("Private.  Creates an enumeration object.")
  18052.         ]
  18053.         HRESULT  _NewEnum(
  18054.             [out, retval] IUnknown** prop // The enumeration object.
  18055.             );
  18056.  
  18057.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18058.  
  18059.         /**
  18060.          * Adds a new NamedColor object to the collection.
  18061.          */
  18062.         [
  18063.              helpcontext(0x101C0006)
  18064.             ,helpstring("Adds a new NamedColor object to the collection.")
  18065.         ]
  18066.         HRESULT  Add(
  18067.             [in] BSTR Name, // The name of the NamedColor object.
  18068.             [in] IMSI_COLOR Color, // The RGB value of the NamedColor object.
  18069.             [out, retval] NamedColor** prop // The newly created NamedColor object.
  18070.             );
  18071.  
  18072.         /**
  18073.          * Returns the index within the table collection of the specified table entry.
  18074.          * Private.
  18075.          */
  18076.         [
  18077.              restricted
  18078.             ,helpcontext(0x101C0007)
  18079.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  18080.         ]
  18081.         HRESULT  _FindIndex(
  18082.             [in] long TableEntryID, // The internal table ID.
  18083.             [out, retval] long* prop // The zero based index.
  18084.             );
  18085.  
  18086.         /**
  18087.          * Returns an object from the table collection for the specified table entry.
  18088.          * Private.
  18089.          */
  18090.         [
  18091.              restricted
  18092.             ,helpcontext(0x101C0008)
  18093.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  18094.         ]
  18095.         HRESULT  _ObjectFromID(
  18096.             [in] long TableEntryID, // The internal table ID.
  18097.             [out, retval] NamedColor** prop // The object.
  18098.             );
  18099.     };
  18100.  
  18101.     /**
  18102.      * A collection of drawing scales.
  18103.      */
  18104.     [
  18105.          object
  18106.         ,restricted, hidden
  18107.         ,uuid(6A481130-E531-11CF-A115-00A024158DAF)
  18108.         ,oleautomation
  18109.         ,dual
  18110.         ,helpcontext(0x101D0000)
  18111.         ,helpstring("A collection of drawing scales.")
  18112.     ]
  18113.     interface ScaleSystem : IDispatch
  18114.     {
  18115.  
  18116.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18117.  
  18118.         /**
  18119.          * Returns an Application object that represents the owner of the specified object.
  18120.          */
  18121.         [
  18122.              propget
  18123.             ,helpcontext(0x101D0001)
  18124.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  18125.         ]
  18126.         HRESULT  Application(
  18127.             [out, retval] IApplication** prop // The Application object.
  18128.             );
  18129.  
  18130.         /**
  18131.          * Returns the number of items in the collection.
  18132.          */
  18133.         [
  18134.              propget
  18135.             ,helpcontext(0x101D0002)
  18136.             ,helpstring("Returns the number of items in the collection.")
  18137.         ]
  18138.         HRESULT  Count(
  18139.             [out, retval] long* prop // The number of items.
  18140.             );
  18141.  
  18142.         /**
  18143.          * Returns the index of the item in the collection.
  18144.          */
  18145.         [
  18146.              propget
  18147.             ,helpcontext(0x101D0003)
  18148.             ,helpstring("Returns the index of the item in the collection.")
  18149.         ]
  18150.         HRESULT  Index(
  18151.             [out, retval] long* prop // The index.
  18152.             );
  18153.  
  18154.         /**
  18155.          * Returns part of a collection.
  18156.          */
  18157.         [
  18158.              propget
  18159.             ,id(DISPID_VALUE)
  18160.             ,helpcontext(0x101D0004)
  18161.             ,helpstring("Returns part of a collection.")
  18162.         ]
  18163.         HRESULT  Item(
  18164.             [in] VARIANT* Index, // Index of item to return.
  18165.             [out, retval] BSTR* prop // The item.
  18166.             );
  18167.  
  18168.         /**
  18169.          * Returns the name of the object, as a string.
  18170.          */
  18171.         [
  18172.              propget
  18173.             ,helpcontext(0x101D0005)
  18174.             ,helpstring("Returns the name of the object, as a string.")
  18175.         ]
  18176.         HRESULT  Name(
  18177.             [out, retval] BSTR* prop // The name of the object.
  18178.             );
  18179.  
  18180.         /**
  18181.          * Returns the parent object for the specified object.
  18182.          */
  18183.         [
  18184.              propget
  18185.             ,helpcontext(0x101D0006)
  18186.             ,helpstring("Returns the parent object for the specified object.")
  18187.         ]
  18188.         HRESULT  Parent(
  18189.             [out, retval] IDispatch** prop // The parent object.
  18190.             );
  18191.  
  18192.         /**
  18193.          * Returns the internal table entry ID.
  18194.          * Private.
  18195.          */
  18196.         [
  18197.              propget
  18198.             ,restricted
  18199.             ,helpcontext(0x101D0007)
  18200.             ,helpstring("Private.  Returns the internal table entry ID.")
  18201.         ]
  18202.         HRESULT  _TableEntryID(
  18203.             [out, retval] long* prop // The table entry ID.
  18204.             );
  18205.  
  18206.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18207.  
  18208.         /**
  18209.          * Deletes the object.
  18210.          */
  18211.         [
  18212.              helpcontext(0x101D0008)
  18213.             ,helpstring("Deletes the object.")
  18214.         ]
  18215.         HRESULT  Delete(
  18216.             );
  18217.  
  18218.     };
  18219.  
  18220.     /**
  18221.      * The collection of ScaleSystem objects.
  18222.      */
  18223.     [
  18224.          object
  18225.         ,restricted, hidden
  18226.         ,uuid(6A481131-E531-11CF-A115-00A024158DAF)
  18227.         ,oleautomation
  18228.         ,dual
  18229.         ,helpcontext(0x101E0000)
  18230.         ,helpstring("The collection of ScaleSystem objects.")
  18231.     ]
  18232.     interface ScaleSystems : IDispatch
  18233.     {
  18234.  
  18235.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18236.  
  18237.         /**
  18238.          * Returns an Application object that represents the owner of the specified object.
  18239.          */
  18240.         [
  18241.              propget
  18242.             ,helpcontext(0x101E0001)
  18243.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  18244.         ]
  18245.         HRESULT  Application(
  18246.             [out, retval] IApplication** prop // The Application object.
  18247.             );
  18248.  
  18249.         /**
  18250.          * Returns the number of items in the collection.
  18251.          */
  18252.         [
  18253.              propget
  18254.             ,helpcontext(0x101E0002)
  18255.             ,helpstring("Returns the number of items in the collection.")
  18256.         ]
  18257.         HRESULT  Count(
  18258.             [out, retval] long* prop // The number of items.
  18259.             );
  18260.  
  18261.         /**
  18262.          * Returns part of a collection.
  18263.          */
  18264.         [
  18265.              propget
  18266.             ,id(DISPID_VALUE)
  18267.             ,helpcontext(0x101E0003)
  18268.             ,helpstring("Returns part of a collection.")
  18269.         ]
  18270.         HRESULT  Item(
  18271.             [in] VARIANT* Index, // Index of item to return.
  18272.             [out, retval] ScaleSystem** prop // The item.
  18273.             );
  18274.  
  18275.         /**
  18276.          * Returns the parent object for the specified object.
  18277.          */
  18278.         [
  18279.              propget
  18280.             ,helpcontext(0x101E0004)
  18281.             ,helpstring("Returns the parent object for the specified object.")
  18282.         ]
  18283.         HRESULT  Parent(
  18284.             [out, retval] IDispatch** prop // The parent object.
  18285.             );
  18286.  
  18287.         /**
  18288.          * Creates an enumeration object.
  18289.          */
  18290.         [
  18291.              propget
  18292.             ,restricted
  18293.             ,id(DISPID_NEWENUM)
  18294.             ,helpcontext(0x101E0005)
  18295.             ,helpstring("Private.  Creates an enumeration object.")
  18296.         ]
  18297.         HRESULT  _NewEnum(
  18298.             [out, retval] IUnknown** prop // The enumeration object.
  18299.             );
  18300.  
  18301.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18302.  
  18303.     };
  18304.  
  18305.     /**
  18306.      * A TurboCAD grid.
  18307.      */
  18308.     [
  18309.          object
  18310.         ,restricted, hidden
  18311.         ,uuid(6A481132-E531-11CF-A115-00A024158DAF)
  18312.         ,oleautomation
  18313.         ,dual
  18314.         ,helpcontext(0x101F0000)
  18315.         ,helpstring("A TurboCAD grid.")
  18316.     ]
  18317.     interface IGrid : IDispatch
  18318.     {
  18319.  
  18320.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18321.  
  18322.         /**
  18323.          * Returns the Grid object's type.
  18324.          */
  18325.         [
  18326.              propget
  18327.             ,helpcontext(0x101F0001)
  18328.             ,helpstring("Returns the Grid object's type.")
  18329.         ]
  18330.         HRESULT  Type(
  18331.             [out, retval] ImsiGridType* prop // The type.
  18332.             );
  18333.  
  18334.         /**
  18335.          * Sets the Grid object's type.
  18336.          */
  18337.         [
  18338.              propput
  18339.             ,helpcontext(0x101F0001)
  18340.             ,helpstring("Sets the Grid object's type.")
  18341.         ]
  18342.         HRESULT  Type(
  18343.             [in] ImsiGridType prop // The type.
  18344.             );
  18345.  
  18346.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18347.  
  18348.         /**
  18349.          * Duplicates the object and returns a reference to the new copy.
  18350.          */
  18351.         [
  18352.              helpcontext(0x101F0002)
  18353.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  18354.         ]
  18355.         HRESULT  Duplicate(
  18356.             [out, retval] IGrid** prop // The duplicated Grid object.
  18357.             );
  18358.  
  18359.     };
  18360.  
  18361.     /**
  18362.      * An object that holds the page setup settings for a Drawing object.
  18363.      */
  18364.     [
  18365.          object
  18366.         ,uuid(6A481133-E531-11CF-A115-00A024158DAF)
  18367.         ,oleautomation
  18368.         ,dual
  18369.         ,helpcontext(0x10200000)
  18370.         ,helpstring("An object that holds the page setup settings for a Drawing object.")
  18371.     ]
  18372.     interface PageSetup : IDispatch
  18373.     {
  18374.  
  18375.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18376.  
  18377.         /**
  18378.          * Returns an Application object that represents the owner of the specified object.
  18379.          */
  18380.         [
  18381.              propget
  18382.             ,helpcontext(0x10200001)
  18383.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  18384.         ]
  18385.         HRESULT  Application(
  18386.             [out, retval] IApplication** prop // The Application object.
  18387.             );
  18388.  
  18389.         /**
  18390.          * Returns the size of the bottom margin, in millimeters.
  18391.          */
  18392.         [
  18393.              propget
  18394.             ,helpcontext(0x10200002)
  18395.             ,helpstring("Returns the size of the bottom margin, in millimeters.")
  18396.         ]
  18397.         HRESULT  BottomMargin(
  18398.             [out, retval] double* prop // The bottom margin, in millimeters.
  18399.             );
  18400.  
  18401.         /**
  18402.          * Sets the size of the bottom margin, in millimeters.
  18403.          */
  18404.         [
  18405.              propput
  18406.             ,helpcontext(0x10200002)
  18407.             ,helpstring("Sets the size of the bottom margin, in millimeters.")
  18408.         ]
  18409.         HRESULT  BottomMargin(
  18410.             [in] double prop // The bottom margin, in millimeters.
  18411.             );
  18412.  
  18413.         /**
  18414.          * Returns the number of columns necessary to tile the sheet height.
  18415.          */
  18416.         [
  18417.              propget
  18418.             ,helpcontext(0x10200003)
  18419.             ,helpstring("Returns the number of columns necessary to tile the sheet height.")
  18420.         ]
  18421.         HRESULT  Columns(
  18422.             [out, retval] SHORT* prop // The number of columns.
  18423.             );
  18424.  
  18425.         /**
  18426.          * Sets the number of columns necessary to tile the sheet height.
  18427.          */
  18428.         [
  18429.              propput
  18430.             ,helpcontext(0x10200003)
  18431.             ,helpstring("Sets the number of columns necessary to tile the sheet height.")
  18432.         ]
  18433.         HRESULT  Columns(
  18434.             [in] SHORT prop // The number of columns.
  18435.             );
  18436.  
  18437.         /**
  18438.          * Returns the Drawing object that owns the object.
  18439.          */
  18440.         [
  18441.              propget
  18442.             ,helpcontext(0x10200004)
  18443.             ,helpstring("Returns the Drawing object that owns the object.")
  18444.         ]
  18445.         HRESULT  Drawing(
  18446.             [out, retval] IDrawing** prop // The Drawing object.
  18447.             );
  18448.  
  18449.         /**
  18450.          * Returns the size of the left margin, in millimeters.
  18451.          */
  18452.         [
  18453.              propget
  18454.             ,helpcontext(0x10200005)
  18455.             ,helpstring("Returns the size of the left margin, in millimeters.")
  18456.         ]
  18457.         HRESULT  LeftMargin(
  18458.             [out, retval] double* prop // The left margin, in millimeters.
  18459.             );
  18460.  
  18461.         /**
  18462.          * Sets the size of the left margin, in millimeters.
  18463.          */
  18464.         [
  18465.              propput
  18466.             ,helpcontext(0x10200005)
  18467.             ,helpstring("Sets the size of the left margin, in millimeters.")
  18468.         ]
  18469.         HRESULT  LeftMargin(
  18470.             [in] double prop // The left margin, in millimeters.
  18471.             );
  18472.  
  18473.         /**
  18474.          * Returns the parent object for the specified object.
  18475.          */
  18476.         [
  18477.              propget
  18478.             ,helpcontext(0x10200006)
  18479.             ,helpstring("Returns the parent object for the specified object.")
  18480.         ]
  18481.         HRESULT  Parent(
  18482.             [out, retval] IDrawing** prop // The parent object.
  18483.             );
  18484.  
  18485.         /**
  18486.          * Returns the printer paper height, in millimeters.
  18487.          */
  18488.         [
  18489.              propget
  18490.             ,helpcontext(0x10200007)
  18491.             ,helpstring("Returns the printer paper height, in millimeters.")
  18492.         ]
  18493.         HRESULT  PrinterHeight(
  18494.             [out, retval] double* prop // The height, in millimeters.
  18495.             );
  18496.  
  18497.         /**
  18498.          * Sets the printer paper height, in millimeters.
  18499.          */
  18500.         [
  18501.              propput
  18502.             ,helpcontext(0x10200007)
  18503.             ,helpstring("Sets the printer paper height, in millimeters.")
  18504.         ]
  18505.         HRESULT  PrinterHeight(
  18506.             [in] double prop // The height, in millimeters.
  18507.             );
  18508.  
  18509.         /**
  18510.          * Returns the printer paper orientation.
  18511.          */
  18512.         [
  18513.              propget
  18514.             ,helpcontext(0x10200008)
  18515.             ,helpstring("Returns the printer paper orientation.")
  18516.         ]
  18517.         HRESULT  PrinterOrientation(
  18518.             [out, retval] ImsiOrientation* prop // The orientation.
  18519.             );
  18520.  
  18521.         /**
  18522.          * Sets the printer paper orientation.
  18523.          */
  18524.         [
  18525.              propput
  18526.             ,helpcontext(0x10200008)
  18527.             ,helpstring("Sets the printer paper orientation.")
  18528.         ]
  18529.         HRESULT  PrinterOrientation(
  18530.             [in] ImsiOrientation prop // The orientation.
  18531.             );
  18532.  
  18533.         /**
  18534.          * Sets the printer paper size from a string.
  18535.          */
  18536.         [
  18537.              propput
  18538.             ,helpcontext(0x10200009)
  18539.             ,helpstring("Sets the printer paper size from a string.")
  18540.             ,restricted, hidden
  18541.         ]
  18542.         HRESULT  PrinterSize(
  18543.             [in] BSTR prop // The size string.
  18544.             );
  18545.  
  18546.         /**
  18547.          * Returns the printer paper width, in millimeters.
  18548.          */
  18549.         [
  18550.              propget
  18551.             ,helpcontext(0x1020000A)
  18552.             ,helpstring("Returns the printer paper width, in millimeters.")
  18553.         ]
  18554.         HRESULT  PrinterWidth(
  18555.             [out, retval] double* prop // The width, in millimeters.
  18556.             );
  18557.  
  18558.         /**
  18559.          * Sets the printer paper width, in millimeters.
  18560.          */
  18561.         [
  18562.              propput
  18563.             ,helpcontext(0x1020000A)
  18564.             ,helpstring("Sets the printer paper width, in millimeters.")
  18565.         ]
  18566.         HRESULT  PrinterWidth(
  18567.             [in] double prop // The width, in millimeters.
  18568.             );
  18569.  
  18570.         /**
  18571.          * Returns the size of the right margin, in millimeters.
  18572.          */
  18573.         [
  18574.              propget
  18575.             ,helpcontext(0x1020000B)
  18576.             ,helpstring("Returns the size of the right margin, in millimeters.")
  18577.         ]
  18578.         HRESULT  RightMargin(
  18579.             [out, retval] double* prop // The right margin, in millimeters.
  18580.             );
  18581.  
  18582.         /**
  18583.          * Sets the size of the right margin, in millimeters.
  18584.          */
  18585.         [
  18586.              propput
  18587.             ,helpcontext(0x1020000B)
  18588.             ,helpstring("Sets the size of the right margin, in millimeters.")
  18589.         ]
  18590.         HRESULT  RightMargin(
  18591.             [in] double prop // The right margin, in millimeters.
  18592.             );
  18593.  
  18594.         /**
  18595.          * Returns the number of rows necessary to tile the sheet width.
  18596.          */
  18597.         [
  18598.              propget
  18599.             ,helpcontext(0x1020000C)
  18600.             ,helpstring("Returns the number of rows necessary to tile the sheet width.")
  18601.         ]
  18602.         HRESULT  Rows(
  18603.             [out, retval] SHORT* prop // The number of rows.
  18604.             );
  18605.  
  18606.         /**
  18607.          * Sets the number of rows necessary to tile the sheet width.
  18608.          */
  18609.         [
  18610.              propput
  18611.             ,helpcontext(0x1020000C)
  18612.             ,helpstring("Sets the number of rows necessary to tile the sheet width.")
  18613.         ]
  18614.         HRESULT  Rows(
  18615.             [in] SHORT prop // The number of rows.
  18616.             );
  18617.  
  18618.         /**
  18619.          * Returns the drawing scale.
  18620.          */
  18621.         [
  18622.              propget
  18623.             ,helpcontext(0x1020000D)
  18624.             ,helpstring("Returns the dwawing scale.")
  18625.         ]
  18626.         HRESULT  Scale(
  18627.             [out, retval] double* prop // The drawing scale.
  18628.             );
  18629.  
  18630.         /**
  18631.          * Sets the drawing scale, as a number or string.
  18632.          */
  18633.         [
  18634.              propput
  18635.             ,helpcontext(0x1020000D)
  18636.             ,helpstring("Sets the drawing scale, as a number or string.")
  18637.         ]
  18638.         HRESULT  Scale(
  18639.             [in] VARIANT* prop // The drawing scale, as a number or string.
  18640.             );
  18641.  
  18642.         /**
  18643.          * Returns the sheet height, in millimeters.
  18644.          */
  18645.         [
  18646.              propget
  18647.             ,helpcontext(0x1020000E)
  18648.             ,helpstring("Returns the sheet height, in millimeters.")
  18649.         ]
  18650.         HRESULT  SheetHeight(
  18651.             [out, retval] double* prop // The height, in millimeters.
  18652.             );
  18653.  
  18654.         /**
  18655.          * Sets the sheet height, in millimeters.
  18656.          */
  18657.         [
  18658.              propput
  18659.             ,helpcontext(0x1020000E)
  18660.             ,helpstring("Sets the sheet height, in millimeters.")
  18661.         ]
  18662.         HRESULT  SheetHeight(
  18663.             [in] double prop // The height, in millimeters.
  18664.             );
  18665.  
  18666.         /**
  18667.          * Returns the sheet orientation.
  18668.          */
  18669.         [
  18670.              propget
  18671.             ,helpcontext(0x1020000F)
  18672.             ,helpstring("Returns the sheet orientation.")
  18673.         ]
  18674.         HRESULT  SheetOrientation(
  18675.             [out, retval] ImsiOrientation* prop // The orientation.
  18676.             );
  18677.  
  18678.         /**
  18679.          * Sets the sheet orientation.
  18680.          */
  18681.         [
  18682.              propput
  18683.             ,helpcontext(0x1020000F)
  18684.             ,helpstring("Sets the sheet orientation.")
  18685.         ]
  18686.         HRESULT  SheetOrientation(
  18687.             [in] ImsiOrientation prop // The orientation.
  18688.             );
  18689.  
  18690.         /**
  18691.          * Returns the sheet width, in millimeters.
  18692.          */
  18693.         [
  18694.              propget
  18695.             ,helpcontext(0x10200010)
  18696.             ,helpstring("Returns the sheet width, in millimeters.")
  18697.         ]
  18698.         HRESULT  SheetWidth(
  18699.             [out, retval] double* prop // The width, in millimeters.
  18700.             );
  18701.  
  18702.         /**
  18703.          * Sets the sheet width, in millimeters.
  18704.          */
  18705.         [
  18706.              propput
  18707.             ,helpcontext(0x10200010)
  18708.             ,helpstring("Sets the sheet width, in millimeters.")
  18709.         ]
  18710.         HRESULT  SheetWidth(
  18711.             [in] double prop // The width, in millimeters.
  18712.             );
  18713.  
  18714.         /**
  18715.          * Returns the size of the top margin, in millimeters.
  18716.          */
  18717.         [
  18718.              propget
  18719.             ,helpcontext(0x10200011)
  18720.             ,helpstring("Returns the size of the top margin, in millimeters.")
  18721.         ]
  18722.         HRESULT  TopMargin(
  18723.             [out, retval] double* prop // The top margin, in millimeters.
  18724.             );
  18725.  
  18726.         /**
  18727.          * Sets the size of the top margin, in millimeters.
  18728.          */
  18729.         [
  18730.              propput
  18731.             ,helpcontext(0x10200011)
  18732.             ,helpstring("Sets the size of the top margin, in millimeters.")
  18733.         ]
  18734.         HRESULT  TopMargin(
  18735.             [in] double prop // The top margin, in millimeters.
  18736.             );
  18737.  
  18738.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18739.  
  18740.         /**
  18741.          * Adjusts the scale to fit the specified area on one page.
  18742.          */
  18743.         [
  18744.              helpcontext(0x10200012)
  18745.             ,helpstring("Adjusts the scale to fit the specified area on one page.")
  18746.             ,restricted, hidden
  18747.         ]
  18748.         HRESULT  FitOnOnePage(
  18749.             [in] double Width, // Width of object in world coordinates.
  18750.             [in] double Height // Height of object in world coordinates.
  18751.             );
  18752.  
  18753.         /**
  18754.          * Gets the available printer paper sizes.
  18755.          */
  18756.         [
  18757.              helpcontext(0x10200013)
  18758.             ,helpstring("Gets the available printer paper sizes.")
  18759.             ,restricted, hidden
  18760.         ]
  18761.         HRESULT  GetPrinterSizes(
  18762.             [out] VARIANT* Sizes // An array of strings.
  18763.             );
  18764.     };
  18765.  
  18766.     /**
  18767.      * An open undo record in a Drawing object.
  18768.      */
  18769.     [
  18770.          object
  18771.         ,uuid(6A481136-E531-11CF-A115-00A024158DAF)
  18772.         ,oleautomation
  18773.         ,dual
  18774.         ,helpcontext(0x10210000)
  18775.         ,helpstring("An open undo record in a Drawing object.")
  18776.     ]
  18777.     interface UndoRecord : IDispatch
  18778.     {
  18779.  
  18780.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18781.  
  18782.         /**
  18783.          * Returns an Application object that represents the owner of the specified object.
  18784.          */
  18785.         [
  18786.              propget
  18787.             ,helpcontext(0x10210001)
  18788.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  18789.         ]
  18790.         HRESULT  Application(
  18791.             [out, retval] IApplication** prop // The Application object.
  18792.             );
  18793.  
  18794.         /**
  18795.          * Returns the Drawing object that owns the object.
  18796.          */
  18797.         [
  18798.              propget
  18799.             ,helpcontext(0x10210002)
  18800.             ,helpstring("Returns the Drawing object that owns the object.")
  18801.         ]
  18802.         HRESULT  Drawing(
  18803.             [out, retval] IDrawing** prop // The Drawing object.
  18804.             );
  18805.  
  18806.         /**
  18807.          * Returns the string that will appear in the Undo menu item.
  18808.          */
  18809.         [
  18810.              propget
  18811.             ,helpcontext(0x10210003)
  18812.             ,helpstring("Returns the string that will appear in the Undo menu item.")
  18813.         ]
  18814.         HRESULT  MenuText(
  18815.             [out, retval] BSTR* prop // The menu string.
  18816.             );
  18817.  
  18818.         /**
  18819.          * Sets the string that will appear in the Undo menu item.
  18820.          */
  18821.         [
  18822.              propput
  18823.             ,helpcontext(0x10210003)
  18824.             ,helpstring("Returns the string that will appear in the Undo menu item.")
  18825.         ]
  18826.         HRESULT  MenuText(
  18827.             [in] BSTR prop // The menu string.
  18828.             );
  18829.  
  18830.         /**
  18831.          * Returns the parent object for the specified object.
  18832.          */
  18833.         [
  18834.              propget
  18835.             ,helpcontext(0x10210004)
  18836.             ,helpstring("Returns the parent object for the specified object.")
  18837.         ]
  18838.         HRESULT  Parent(
  18839.             [out, retval] IDispatch** prop // The parent object.
  18840.             );
  18841.  
  18842.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18843.  
  18844.         /**
  18845.          * Adds a Graphic object reference to the URecObj.
  18846.          */
  18847.  
  18848.         /**
  18849.          * TCADAPI UndoRecordAddGraphic function.
  18850.          */
  18851.         [
  18852.              helpcontext(0x10210005)
  18853.             ,helpstring("Adds a Graphic object reference to the URecObj.")
  18854.         ]
  18855.         HRESULT  AddGraphic(
  18856.             [in] IGraphic* Graphic // The Graphic object to delete when Undo is called.
  18857.             );
  18858.  
  18859.         /**
  18860.          * Adds a purged reference to the Graphic object to the URecObj.
  18861.          */
  18862.  
  18863.         [
  18864.              helpcontext(0x10210006)
  18865.             ,helpstring("Adds a purged reference to the Graphic object to the URecObj.")
  18866.         ]
  18867.         HRESULT  AddGraphicForModify(
  18868.             [in] IGraphic* Graphic // The Graphic object to restore when Undo is called.
  18869.             );
  18870.  
  18871.         /**
  18872.          * Closes the URecObj and adds it to the Drawing object's Undo stack.
  18873.          */
  18874.  
  18875.         /**
  18876.          * TCADAPI UndoRecordEnd function.
  18877.          */
  18878.         [
  18879.              helpcontext(0x10210007)
  18880.             ,helpstring("Closes the URecObj and adds it to the Drawing object's Undo stack.")
  18881.         ]
  18882.         HRESULT  Close(
  18883.             );
  18884.  
  18885.         /**
  18886.          * Deletes the object.
  18887.          */
  18888.         [
  18889.              helpcontext(0x10210008)
  18890.             ,helpstring("Deletes the object.")
  18891.         ]
  18892.         HRESULT  Delete(
  18893.             );
  18894.  
  18895.         /**
  18896.          * Deletes the Graphic object, adding a purged reference to the URecObj.
  18897.          */
  18898.  
  18899.         [
  18900.              helpcontext(0x10210009)
  18901.             ,helpstring("Deletes the Graphic object, adding a purged reference to the URecObj.")
  18902.         ]
  18903.         HRESULT  DeleteGraphic(
  18904.             [in] IGraphic* Graphic // The Graphic object to add when Undo is called.
  18905.             );
  18906.  
  18907.         /**
  18908.          * Deletes the Graphics collection, adding a purged references to the URecObj.
  18909.          */
  18910.  
  18911.         [
  18912.              helpcontext(0x10210009)
  18913.             ,helpstring("Deletes the Graphics collection, adding a purged references to the URecObj.")
  18914.         ]
  18915.         HRESULT  DeleteGraphics(
  18916.              [in]            Graphics* pGrs // The Graphics collection to add when Undo is called.
  18917.             ,[in, optional]    VARIANT* pvarFlags
  18918.             );
  18919.  
  18920.         /**
  18921.          * Add custom undo action to the URecObj.
  18922.          */
  18923.  
  18924.         [
  18925.              helpcontext(0x1021000A)
  18926.             ,helpstring("Add custom undo action to the URecObj.")
  18927.         ]
  18928.         HRESULT  CustomAction(
  18929.              [in]            VARIANT* pvarUndoSink// object supports IUndoNotifySink interface
  18930.             );
  18931.     };
  18932.  
  18933.     /**
  18934.      * A transformation matrix.
  18935.      */
  18936.     [
  18937.          object
  18938.         ,uuid(6A481137-E531-11CF-A115-00A024158DAF)
  18939.         ,oleautomation
  18940.         ,dual
  18941.         ,helpcontext(0x10220000)
  18942.         ,helpstring("A transformation matrix.")
  18943.     ]
  18944.     interface IMatrix : IDispatch
  18945.     {
  18946.  
  18947.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18948.  
  18949.         /**
  18950.          * Returns the entry 'e' whith indexes 'i'(row), 'j'(col)
  18951.          */
  18952.         [
  18953.              helpcontext(0x10220001)
  18954.             ,helpstring("Returns the entry whith indexes i(row),j(col).")
  18955.         ]
  18956.         HRESULT  GetEntry(
  18957.             [in] int i, // The x scale factor.
  18958.             [in] int j, // The y scale factor.
  18959.             [out, retval] double* e // The entry value.
  18960.             );
  18961.  
  18962.         /**
  18963.          * Set the entry 'e' whith indexes 'i'(row), 'j'(col)
  18964.          */
  18965.         [
  18966.              helpcontext(0x10220002)
  18967.             ,helpstring("set the entry whith indexes i(row),j(col).")
  18968.         ]
  18969.         HRESULT  SetEntry(
  18970.             [in] int i, // The x scale factor.
  18971.             [in] int j, // The y scale factor.
  18972.             [in] double e // New entry value.
  18973.             );
  18974.  
  18975.  
  18976.         /**
  18977.          * Returns the all entries
  18978.          */
  18979.         [
  18980.              helpcontext(0x10220003)
  18981.             ,helpstring("Returns all entries.")
  18982.         ]
  18983.         HRESULT  GetEntries(
  18984.             [out] double* e00, // The entry value.
  18985.             [out] double* e01, // The entry value.
  18986.             [out] double* e02, // The entry value.
  18987.             [out] double* e03, // The entry value.
  18988.  
  18989.             [out] double* e10, // The entry value.
  18990.             [out] double* e11, // The entry value.
  18991.             [out] double* e12, // The entry value.
  18992.             [out] double* e13, // The entry value.
  18993.  
  18994.             [out] double* e20, // The entry value.
  18995.             [out] double* e21, // The entry value.
  18996.             [out] double* e22, // The entry value.
  18997.             [out] double* e23, // The entry value.
  18998.  
  18999.             [out] double* e30, // The entry value.
  19000.             [out] double* e31, // The entry value.
  19001.             [out] double* e32, // The entry value.
  19002.             [out] double* e33 // The entry value.
  19003.             );
  19004.  
  19005.  
  19006.         /**
  19007.          * Set the all entries
  19008.          */
  19009.         [
  19010.              helpcontext(0x10220004)
  19011.             ,helpstring("Set the all entries.")
  19012.         ]
  19013.         HRESULT  SetEntries(
  19014.             [in] double e00, // The entry value.
  19015.             [in] double e01, // The entry value.
  19016.             [in] double e02, // The entry value.
  19017.             [in] double e03, // The entry value.
  19018.  
  19019.             [in] double e10, // The entry value.
  19020.             [in] double e11, // The entry value.
  19021.             [in] double e12, // The entry value.
  19022.             [in] double e13, // The entry value.
  19023.  
  19024.             [in] double e20, // The entry value.
  19025.             [in] double e21, // The entry value.
  19026.             [in] double e22, // The entry value.
  19027.             [in] double e23, // The entry value.
  19028.  
  19029.             [in] double e30, // The entry value.
  19030.             [in] double e31, // The entry value.
  19031.             [in] double e32,  // The entry value.
  19032.             [in] double e33 // The entry value.
  19033.             );
  19034.  
  19035. //////////////////////////////////////////////
  19036.  
  19037.         /**
  19038.          * Returns the internal handle associated with the Drawing object.
  19039.          * Private.
  19040.          */
  19041.         [
  19042.              propget
  19043.             ,restricted
  19044.             ,helpcontext(0x10220005)
  19045.             ,helpstring("Private.  Returns the internal handle associated with the Drawing object.")
  19046.         ]
  19047.         HRESULT  _Handle(
  19048.             [out, retval] long* prop // The internal handle.
  19049.             );
  19050.  
  19051.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19052.  
  19053.         /**
  19054.          * Duplicates the object and returns a reference to the new copy.
  19055.          */
  19056.         [
  19057.              helpcontext(0x10220006)
  19058.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  19059.         ]
  19060.         HRESULT  Duplicate(
  19061.             [out, retval] IMatrix** prop // The duplicated Matrix object.
  19062.             );
  19063.  
  19064.         /**
  19065.          * Fills an array with the values of a 4x4 matrix.
  19066.          */
  19067.         [
  19068.              helpcontext(0x10220007)
  19069.             ,helpstring("Fills an array with the values of a 4x4 matrix.")
  19070.         ]
  19071.         HRESULT  GetArray(
  19072.             [in, out] VARIANT* ArrayEntries // An array of 16 doubles.
  19073.             );
  19074.  
  19075.         /**
  19076.          * Sets the Matrix object to an identity matrix.
  19077.          */
  19078.         [
  19079.              helpcontext(0x10220008)
  19080.             ,helpstring("Sets the Matrix object to an identity matrix.")
  19081.         ]
  19082.         HRESULT  Identity(
  19083.             );
  19084.  
  19085.         /**
  19086.          * Inverts the Matrix object.
  19087.          */
  19088.         [
  19089.              helpcontext(0x10220009)
  19090.             ,helpstring("Inverts the Matrix object.")
  19091.         ]
  19092.         HRESULT  Invert(
  19093.             );
  19094.  
  19095.         /**
  19096.          * Sets the Matrix object to, or transforms the Matrix object by, a rotation.
  19097.          */
  19098.         [
  19099.              helpcontext(0x1022000A)
  19100.             ,helpstring("Sets the Matrix object to, or transforms the Matrix object by, a rotation.")
  19101.         ]
  19102.         HRESULT  Rotate(
  19103.             [in] double XAxis, // The x coordinate of the rotation axis.
  19104.             [in] double YAxis, // The y coordinate of the rotation axis.
  19105.             [in] double ZAxis, // The z coordinate of the rotation axis.
  19106.             [in] double Angle, // The rotation angle in radians.
  19107.             [in, optional] VARIANT* XCenter, // The x coordinate of the center of rotation.
  19108.             [in, optional] VARIANT* YCenter, // The y coordinate of the center of rotation.
  19109.             [in, optional] VARIANT* ZCenter, // The z coordinate of the center of rotation.
  19110.             [in, optional] VARIANT* Concat // True to concatenate this to the existing transform.
  19111.             );
  19112.  
  19113.         /**
  19114.          * Sets the Matrix object to, or transforms the Matrix object by, scale factors.
  19115.          */
  19116.         [
  19117.              helpcontext(0x1022000B)
  19118.             ,helpstring("Sets the Matrix object to, or transforms the Matrix object by, scale factors.")
  19119.         ]
  19120.         HRESULT  Scale(
  19121.             [in] double XScale, // The x scale factor.
  19122.             [in] double YScale, // The y scale factor.
  19123.             [in] double ZScale, // The z scale factor.
  19124.             [in, optional] VARIANT* XCenter, // The x coordinate of the center of scaling.
  19125.             [in, optional] VARIANT* YCenter, // The y coordinate of the center of scaling.
  19126.             [in, optional] VARIANT* ZCenter, // The z coordinate of the center of scaling.
  19127.             [in, optional] VARIANT* Concat // True to concatenate this to the existing transform.
  19128.             );
  19129.  
  19130.         /**
  19131.          * Sets the Matrix object from an array with the values of a 4x4 matrix.
  19132.          */
  19133.         [
  19134.              helpcontext(0x1022000C)
  19135.             ,helpstring("Sets the Matrix object from an array with the values of a 4x4 matrix.")
  19136.         ]
  19137.         HRESULT  SetArray(
  19138.             [in] VARIANT* ArrayEntries // An array of 16 doubles.
  19139.             );
  19140.  
  19141.         /**
  19142.          * Sets the Matrix object to, or transforms the Matrix object by, a translation.
  19143.          */
  19144.         [
  19145.              helpcontext(0x1022000D)
  19146.             ,helpstring("Sets the Matrix object to, or transforms the Matrix object by, a translation.")
  19147.         ]
  19148.         HRESULT  Translate(
  19149.             [in] double X, // The x coordinate of the translation.
  19150.             [in] double Y, // The y coordinate of the translation.
  19151.             [in] double Z, // The z coordinate of the translation.
  19152.             [in, optional] VARIANT* Concat // True to concatenate this to the existing transform.
  19153.             );
  19154.  
  19155.         /**
  19156.          * Transposes the Matrix object.
  19157.          */
  19158.         [
  19159.              helpcontext(0x1022000E)
  19160.             ,helpstring("Transposes the Matrix object.")
  19161.         ]
  19162.         HRESULT  Transpose(
  19163.             );
  19164.  
  19165.         /**
  19166.          * Translates, scales, and rotates around z axis.
  19167.          */
  19168.         [
  19169.              helpcontext(0x1022000F)
  19170.             ,helpstring("Translates, scales, and rotates around z axis.")
  19171.         ]
  19172.         HRESULT  TranslateScaleAndRotateZ(
  19173.             [in] double X, // X coordinate of the translation.
  19174.             [in] double Y, // Y coordinate of the translation.
  19175.             [in] double Z, // Z coordinate of the translation.
  19176.             [in] double XScale, // X scale factor.
  19177.             [in] double YScale, // Y scale factor.
  19178.             [in] double ZScale, // Z scale factor.
  19179.             [in] double Angle, // Angle of rotation around z axis in radians.
  19180.             [in, optional] VARIANT* XCenter, // The x coordinate of the center of rotation.
  19181.             [in, optional] VARIANT* YCenter, // The y coordinate of the center of rotation.
  19182.             [in, optional] VARIANT* ZCenter, // The z coordinate of the center of rotation.
  19183.             [in, optional] VARIANT* Concat // True to concatenate this to the existing transform.
  19184.             );
  19185.  
  19186.         [
  19187.              helpcontext(0x10220010)
  19188.             ,helpstring("check if matrix equal to another")
  19189.         ]
  19190.         HRESULT  IsEqual(
  19191.              [in] IDispatch* pIDisp
  19192.             ,[out, retval] IMSI_BOOL* pbRet
  19193.             );
  19194.     };
  19195.  
  19196.     /**
  19197.      * An object that describes a cube in three dimensional space.
  19198.      */
  19199.     [
  19200.          object
  19201.         ,uuid(6A48111F-E531-11CF-A115-00A024158DAF)
  19202.         ,oleautomation
  19203.         ,dual
  19204.         ,helpcontext(0x10230000)
  19205.         ,helpstring("An object that describes a cube in three dimensional space.")
  19206.     ]
  19207.     interface BoundingBox : IDispatch
  19208.     {
  19209.  
  19210.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19211.  
  19212.         /**
  19213.          * Returns True if the BoundingBox object empty.
  19214.          */
  19215.         [
  19216.              propget
  19217.             ,helpcontext(0x10230001)
  19218.             ,helpstring("Returns True if the BoundingBox object is empty.")
  19219.         ]
  19220.         HRESULT  Empty(
  19221.             [out, retval] IMSI_BOOL* prop // True if the BoundingBox object is empty.
  19222.             );
  19223.  
  19224.         /**
  19225.          * Returns the maximum Vertex object of the BoundingBox object.
  19226.          */
  19227.         [
  19228.              propget
  19229.             ,helpcontext(0x10230002)
  19230.             ,helpstring("Returns the maximum Vertex object of the BoundingBox object.")
  19231.         ]
  19232.         HRESULT  Max(
  19233.             [out, retval] IVertex** max // The maximum Vertex object.
  19234.             );
  19235.  
  19236.         /**
  19237.          * Returns the minimum Vertex object of the BoundingBox object.
  19238.          */
  19239.         [
  19240.              propget
  19241.             ,helpcontext(0x10230003)
  19242.             ,helpstring("Returns the minimum Vertex object of the BoundingBox object.")
  19243.         ]
  19244.         HRESULT  Min(
  19245.             [out, retval] IVertex** min // The minimum Vertex object.
  19246.             );
  19247.  
  19248.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19249.  
  19250.         /**
  19251.          * Returns the direction to the nearest face of the box.
  19252.          */
  19253.         [
  19254.              helpcontext(0x10230004)
  19255.             ,helpstring("Returns the direction from a Vertex object to the nearest face of the BoundingBox object.")
  19256.         ]
  19257.         HRESULT  DirToNearestFace(
  19258.             [in] IVertex* Vertex, // The Vertex object to test.
  19259.             [in] IMSI_BOOL IgnoreZAxis, // True to ignore the z axis.
  19260.             [in, optional] VARIANT* OtherVertex, // Another Vertex object in case the answer is ambiguous.
  19261.             [out, retval] ImsiDirection* prop // The direction.
  19262.             );
  19263.  
  19264.         /**
  19265.          * Inflates (or deflates) the BoundingBox object by the specified distance.
  19266.          */
  19267.         [
  19268.              helpcontext(0x10230005)
  19269.             ,helpstring("Inflates (or deflates) the BoundingBox object by the specified distance.")
  19270.         ]
  19271.         HRESULT  Inflate(
  19272.             [in] double InflateBy // The amount to inflate by (positive) or deflate by (negative).
  19273.             );
  19274.  
  19275.         /**
  19276.          * Sets the BoundingBox object to a point or cube around a specified vertex.
  19277.          */
  19278.         [
  19279.              helpcontext(0x10230006)
  19280.             ,helpstring("Sets the BoundingBox object to a point or cube around a specified vertex.")
  19281.         ]
  19282.         HRESULT  Set(
  19283.             [in, optional] VARIANT* Center, // A Vertex object specifying the center of the BoundingBox object.
  19284.             [in, optional] VARIANT* Size // The size of the BoundingBox object.
  19285.             );
  19286.  
  19287.     
  19288.         /**
  19289.          * Makes the dimensions of BoundingBox equal to the union of the source BoundingBox and pvarBBox object.
  19290.          */
  19291.         [
  19292.              helpcontext(0x10230007)
  19293.             ,helpstring("Sets the BoundingBox object to a point or cube around a specified vertex.")
  19294.         ]
  19295.         HRESULT  Union(
  19296.             [in] VARIANT* pvarBBox // A BoundingBox object to be union with source BoundingBox.
  19297.             );
  19298.  
  19299.         /**
  19300.          * Makes the dimensions of BoundingBox equal to the intersection of the source BoundingBox and pvarBBox object.
  19301.          */
  19302.         [
  19303.              helpcontext(0x10230008)
  19304.             ,helpstring("Makes the dimensions of BoundingBox equal to the intersection of the source BoundingBox and pvarBBox object.")
  19305.         ]
  19306.         HRESULT  Intersect(
  19307.             [in] VARIANT* pvarBBox // A BoundingBox object to be intersection with source BoundingBox.
  19308.             );
  19309.  
  19310.         /**
  19311.          * Makes the dimensions of BoundingBox equal to the subtrcation of the source BoundingBox and pvarBBox object.
  19312.          */
  19313.         [
  19314.              helpcontext(0x10230009)
  19315.             ,helpstring("Makes the dimensions of BoundingBox equal to the subtrcation of the source BoundingBox and pvarBBox object.")
  19316.         ]
  19317.         HRESULT  Subtract(
  19318.             [in] VARIANT* pvarBBox // A BoundingBox object to be subtrcation with source BoundingBox.
  19319.             );
  19320.     };
  19321.  
  19322.     /**
  19323.      * A named container for Graphic objects that can be inserted into a Drawing object.
  19324.      */
  19325.     [
  19326.          object
  19327.         ,uuid(6A481120-E531-11CF-A115-00A024158DAF)
  19328.         ,oleautomation
  19329.         ,dual
  19330.         ,helpcontext(0x10240000)
  19331.         ,helpstring("A named container for Graphic objects that can be inserted into a Drawing object.")
  19332.     ]
  19333.     interface Block : IDispatch
  19334.     {
  19335.  
  19336.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19337.  
  19338.         /**
  19339.          * Returns the anchor point for insertions.
  19340.          */
  19341.         [
  19342.              propget
  19343.             ,helpcontext(0x10240001)
  19344.             ,helpstring("Returns the anchor point for insertions.")
  19345.         ]
  19346.         HRESULT  Anchor(
  19347.             [out, retval] IVertex** prop // The anchor, as a Vertex object.
  19348.             );
  19349.  
  19350.         /**
  19351.          * Sets the anchor point for insertions.
  19352.          */
  19353.         [
  19354.              propput
  19355.             ,helpcontext(0x10240001)
  19356.             ,helpstring("Sets the anchor point for insertions.")
  19357.         ]
  19358.         HRESULT  Anchor(
  19359.             [in] IVertex* prop // The anchor, as a Vertex object.
  19360.             );
  19361.  
  19362.         /**
  19363.          * Returns an Application object that represents the owner of the specified object.
  19364.          */
  19365.         [
  19366.              propget
  19367.             ,helpcontext(0x10240002)
  19368.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  19369.         ]
  19370.         HRESULT  Application(
  19371.             [out, retval] IApplication** prop // The Application object.
  19372.             );
  19373.  
  19374.         /**
  19375.          * Returns the Drawing object that owns the object.
  19376.          */
  19377.         [
  19378.              propget
  19379.             ,helpcontext(0x10240003)
  19380.             ,helpstring("Returns the Drawing object that owns the object.")
  19381.         ]
  19382.         HRESULT  Drawing(
  19383.             [out, retval] IDrawing** prop // The Drawing object.
  19384.             );
  19385.  
  19386.         /**
  19387.          * Returns the Graphics collection that the Block object contains.
  19388.          */
  19389.         [
  19390.              propget, id(DISPID_VALUE)
  19391.             ,helpcontext(0x10240004)
  19392.             ,helpstring("Returns the Graphics collection that the Block object contains.")
  19393.         ]
  19394.         HRESULT  Graphics(
  19395.             [out, retval] Graphics** prop // The Graphics collection.
  19396.             );
  19397.  
  19398.         /**
  19399.          * Returns the index of the item in the collection.
  19400.          */
  19401.         [
  19402.              propget
  19403.             ,helpcontext(0x10240005)
  19404.             ,helpstring("Returns the index of the item in the collection.")
  19405.         ]
  19406.         HRESULT  Index(
  19407.             [out, retval] long* prop // The index.
  19408.             );
  19409.  
  19410.         /**
  19411.          * Returns the name of the object, as a string.
  19412.          */
  19413.         [
  19414.              propget
  19415.             ,helpcontext(0x10240006)
  19416.             ,helpstring("Returns the name of the object, as a string.")
  19417.         ]
  19418.         HRESULT  Name(
  19419.             [out, retval] BSTR* prop // The name of the object.
  19420.             );
  19421.  
  19422.         /**
  19423.          * Returns the parent object for the specified object.
  19424.          */
  19425.         [
  19426.              propget
  19427.             ,helpcontext(0x10240007)
  19428.             ,helpstring("Returns the parent object for the specified object.")
  19429.         ]
  19430.         HRESULT  Parent(
  19431.             [out, retval] IDispatch** prop // The parent object.
  19432.             );
  19433.  
  19434.         /**
  19435.          * Returns the internal table entry ID.
  19436.          * Private.
  19437.          */
  19438.         [
  19439.              propget
  19440.             ,restricted
  19441.             ,helpcontext(0x10240008)
  19442.             ,helpstring("Private.  Returns the internal table entry ID.")
  19443.         ]
  19444.         HRESULT  _TableEntryID(
  19445.             [out, retval] long* prop // The table entry ID.
  19446.             );
  19447.  
  19448.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19449.  
  19450.         /**
  19451.          * Deletes the object.
  19452.          */
  19453.         [
  19454.              helpcontext(0x10240009)
  19455.             ,helpstring("Deletes the object.")
  19456.         ]
  19457.         HRESULT  Delete(
  19458.             );
  19459.  
  19460.         /**
  19461.          * Duplicates the object and returns a reference to the new copy.
  19462.          */
  19463.         [
  19464.              helpcontext(0x1024000A)
  19465.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  19466.             ,restricted, hidden
  19467.         ]
  19468.         HRESULT  Duplicate(
  19469.             [in] BSTR Name, // The name of the new Block object.
  19470.             [out, retval] Block** prop // The duplicated Block object.
  19471.             );
  19472.  
  19473.         /**
  19474.          * Returns the anchor point for insertions.
  19475.          */
  19476.         [
  19477.              propget
  19478.             ,helpcontext(0x1024000B)
  19479.             ,helpstring("Returns TRUE if Block is eXternal Reference.")
  19480.         ]
  19481.         HRESULT  XRef(
  19482.             [out, retval] IMSI_BOOL* prop // The anchor, as a Vertex object.
  19483.             );
  19484.  
  19485.         /**
  19486.             Sets the path to the referencing file if Block is eXternal Reference.
  19487.         **/
  19488.         [
  19489.              propput
  19490.             ,helpcontext(0x1024000C)
  19491.             ,helpstring("Sets the path to the referencing file if Block is eXternal Reference.")
  19492.             //,restricted, hidden
  19493.         ]
  19494.         HRESULT  XRefPath(
  19495.             [in] BSTR prop // The path to the referencing file .
  19496.             );
  19497.  
  19498.         /**
  19499.             Returns the path to the referencing file if Block is eXternal Reference.
  19500.         **/
  19501.  
  19502.         [
  19503.              propget
  19504.             ,helpcontext(0x1024000C)
  19505.             ,helpstring("Returns the path to the referencing file if Block is eXternal Reference.")
  19506.         ]
  19507.         HRESULT  XRefPath(
  19508.             [out, retval] BSTR* prop // The path to the referencing file .
  19509.             );
  19510.  
  19511.         /**
  19512.          * Creates and adds an attribute definition Graphic object to the collection.  
  19513.          */
  19514.         [
  19515.              helpcontext(0x10040071)
  19516.             ,helpstring("Creates and adds an attribute definition Graphic object to the collection.")
  19517.         ]
  19518.         HRESULT  AddAttributeDefinition(
  19519.             [in] BSTR Tag, // The text string for the attribute definition tag.
  19520.             [in] double X0, // X coordinate of attdef's starting point.
  19521.             [in] double Y0, // Y coordinate of attdef's starting point.
  19522.             [in] double Z0, // Z coordinate of attdef's starting point.
  19523.             [in] double Height, // Height of attdef object.
  19524.             [in, optional] VARIANT* Angle, // Rotation angle of attdef in radians.
  19525.             [in, optional] VARIANT* Width, // Width of attdef object.
  19526.             [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  19527.             [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  19528.             [in, optional] VARIANT* AttFlags, // ImsiAttFlag values.
  19529.             [in, optional] VARIANT* Default, // Default value of attribute.
  19530.             [in, optional] VARIANT* Prompt, // Prompt for attribute.
  19531.             [out, retval] IGraphic** prop // The newly created Graphic object.
  19532.             );
  19533.     };
  19534.  
  19535.     /**
  19536.      * The Drawing object's collection of Block objects.
  19537.      */
  19538.     [
  19539.          object
  19540.         ,uuid(6A481121-E531-11CF-A115-00A024158DAF)
  19541.         ,oleautomation
  19542.         ,dual
  19543.         ,helpcontext(0x10250000)
  19544.         ,helpstring("The Drawing object's collection of Block objects.")
  19545.     ]
  19546.     interface Blocks : IDispatch
  19547.     {
  19548.  
  19549.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19550.  
  19551.         /**
  19552.          * Returns an Application object that represents the owner of the specified object.
  19553.          */
  19554.         [
  19555.              propget
  19556.             ,helpcontext(0x10250001)
  19557.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  19558.         ]
  19559.         HRESULT  Application(
  19560.             [out, retval] IApplication** prop // The Application object.
  19561.             );
  19562.  
  19563.         /**
  19564.          * Returns the number of items in the collection.
  19565.          */
  19566.         [
  19567.              propget
  19568.             ,helpcontext(0x10250002)
  19569.             ,helpstring("Returns the number of items in the collection.")
  19570.         ]
  19571.         HRESULT  Count(
  19572.             [out, retval] long* prop // The number of items.
  19573.             );
  19574.  
  19575.         /**
  19576.          * Returns part of a collection.
  19577.          */
  19578.         [
  19579.              propget
  19580.             ,id(DISPID_VALUE)
  19581.             ,helpcontext(0x10250003)
  19582.             ,helpstring("Returns part of a collection.")
  19583.         ]
  19584.         HRESULT  Item(
  19585.             [in] VARIANT* Index, // Index of item to return.
  19586.             [out, retval] Block** prop // The item.
  19587.             );
  19588.  
  19589.         /**
  19590.          * Returns the parent object for the specified object.
  19591.          */
  19592.         [
  19593.              propget
  19594.             ,helpcontext(0x10250004)
  19595.             ,helpstring("Returns the parent object for the specified object.")
  19596.         ]
  19597.         HRESULT  Parent(
  19598.             [out, retval] IDispatch** prop // The parent object.
  19599.             );
  19600.  
  19601.         /**
  19602.          * Creates an enumeration object.
  19603.          */
  19604.         [
  19605.              propget
  19606.             ,restricted
  19607.             ,id(DISPID_NEWENUM)
  19608.             ,helpcontext(0x10250005)
  19609.             ,helpstring("Private.  Creates an enumeration object.")
  19610.         ]
  19611.         HRESULT  _NewEnum(
  19612.             [out, retval] IUnknown** prop // The enumeration object.
  19613.             );
  19614.  
  19615.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19616.  
  19617.         /**
  19618.          * Adds a new Block object to the collection.
  19619.          */
  19620.         [
  19621.              helpcontext(0x10250006)
  19622.             ,helpstring("Adds a new Block object to the collection.")
  19623.         ]
  19624.         HRESULT  Add(
  19625.             [in] BSTR Name, // The name of the new Block object.
  19626.             [in] IGraphic* Graphic, // The Graphic object that the Block object will contain.
  19627.             [in, optional] VARIANT* XRef, // X coordinate of the block reference point.
  19628.             [in, optional] VARIANT* YRef, // Y coordinate of the block reference point.
  19629.             [in, optional] VARIANT* ZRef, // Z coordinate of the block reference point.
  19630.             [in, optional] VARIANT* CopyGraphic, // True to make the block using copies of the Graphic object.
  19631.             [in, optional] VARIANT* InsertBlock, // True to insert the new block in the Drawing object.
  19632.             [in, out, optional] VARIANT* Insert, // The Insert Graphic object if InsertBlock was true
  19633.             [out, retval] Block** prop // The newly created Block object.
  19634.             );
  19635.  
  19636.         /**
  19637.          * Returns the index within the table collection of the specified table entry.
  19638.          * Private.
  19639.          */
  19640.         [
  19641.              restricted
  19642.             ,helpcontext(0x10250007)
  19643.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  19644.         ]
  19645.         HRESULT  _FindIndex(
  19646.             [in] long TableEntryID, // The internal table ID.
  19647.             [out, retval] long* prop // The zero based index.
  19648.             );
  19649.  
  19650.         /**
  19651.          * Returns an object from the table collection for the specified table entry.
  19652.          * Private.
  19653.          */
  19654.         [
  19655.              restricted
  19656.             ,helpcontext(0x10250008)
  19657.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  19658.         ]
  19659.         HRESULT  _ObjectFromID(
  19660.             [in] long TableEntryID, // The internal table ID.
  19661.             [out, retval] Block** prop // The object.
  19662.             );
  19663.  
  19664.         /**
  19665.          * Adds a new Block object to the collection.
  19666.          */
  19667.         [
  19668.              helpcontext(0x10250009)
  19669.             ,helpstring("Adds a new eXternal Reference Block object to the collection.")
  19670.         ]
  19671.         HRESULT  AddXRef(
  19672.             [in] BSTR Name, // The name of the new Block object.
  19673.             [in] BSTR path, // path to the eXternal Reference file
  19674.             [in, optional] VARIANT* XRef, // X coordinate of the block reference point.
  19675.             [in, optional] VARIANT* YRef, // Y coordinate of the block reference point.
  19676.             [in, optional] VARIANT* ZRef, // Z coordinate of the block reference point.
  19677.             [out, retval] Block** prop // The newly created Block object.
  19678.             );
  19679.     };
  19680.  
  19681.     /**
  19682.      * A generic TurboCAD table.
  19683.      */
  19684.     [
  19685.          object
  19686.         ,restricted, hidden
  19687.         ,uuid(6A481138-E531-11CF-A115-00A024158DAF)
  19688.         ,oleautomation
  19689.         ,dual
  19690.         ,helpcontext(0x10260000)
  19691.         ,helpstring("A generic TurboCAD table.")
  19692.     ]
  19693.     interface Table : IDispatch
  19694.     {
  19695.  
  19696.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19697.  
  19698.         /**
  19699.          * Returns an Application object that represents the owner of the specified object.
  19700.          */
  19701.         [
  19702.              propget
  19703.             ,helpcontext(0x10260001)
  19704.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  19705.         ]
  19706.         HRESULT  Application(
  19707.             [out, retval] IApplication** prop // The Application object.
  19708.             );
  19709.  
  19710.         /**
  19711.          * Returns the number of entries in the Table.
  19712.          */
  19713.         [
  19714.              propget
  19715.             ,helpcontext(0x10260002)
  19716.             ,helpstring("Returns the number of entries in the Table.")
  19717.         ]
  19718.         HRESULT  Count(
  19719.             [out, retval] long* prop // The number of items.
  19720.             );
  19721.  
  19722.         /**
  19723.          * Returns the name of the entry at a specified index.
  19724.          */
  19725.         [
  19726.              propget
  19727.             ,helpcontext(0x10260003)
  19728.             ,helpstring("Returns the name of the entry at a specified index.")
  19729.         ]
  19730.         HRESULT  EntryName(
  19731.             [in] long Index, // The index.
  19732.             [out, retval] BSTR* prop // The name of the entry.
  19733.             );
  19734.  
  19735.         /**
  19736.          * Returns the value of the entry at a specified index.
  19737.          */
  19738.         [
  19739.              propget
  19740.             ,helpcontext(0x10260004)
  19741.             ,helpstring("Returns the value of the entry at a specified index.")
  19742.         ]
  19743.         HRESULT  EntryValue(
  19744.             [in] long Index, // The index.
  19745.             [out, retval] BSTR* prop // The value of the entry, as a string.
  19746.             );
  19747.  
  19748.         /**
  19749.          * Returns the index of the item in the collection.
  19750.          */
  19751.         [
  19752.              propget
  19753.             ,helpcontext(0x10260005)
  19754.             ,helpstring("Returns the index of the item in the collection.")
  19755.         ]
  19756.         HRESULT  Index(
  19757.             [out, retval] long* prop // The index.
  19758.             );
  19759.  
  19760.         /**
  19761.          * Returns the name of the object, as a string.
  19762.          */
  19763.         [
  19764.              propget
  19765.             ,helpcontext(0x10260006)
  19766.             ,helpstring("Returns the name of the object, as a string.")
  19767.         ]
  19768.         HRESULT  Name(
  19769.             [out, retval] BSTR* prop // The name of the object.
  19770.             );
  19771.  
  19772.         /**
  19773.          * Returns the parent object for the specified object.
  19774.          */
  19775.         [
  19776.              propget
  19777.             ,helpcontext(0x10260007)
  19778.             ,helpstring("Returns the parent object for the specified object.")
  19779.         ]
  19780.         HRESULT  Parent(
  19781.             [out, retval] IDispatch** prop // The parent object.
  19782.             );
  19783.  
  19784.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19785.  
  19786.         /**
  19787.          * Clears the Table object's entries.
  19788.          */
  19789.         [
  19790.              helpcontext(0x10260008)
  19791.             ,helpstring("Clears the Table object's entries.")
  19792.         ]
  19793.         HRESULT  Clear(
  19794.             );
  19795.  
  19796.         /**
  19797.          * Deletes the object.
  19798.          */
  19799.         [
  19800.              helpcontext(0x10260009)
  19801.             ,helpstring("Deletes the object.")
  19802.         ]
  19803.         HRESULT  Delete(
  19804.             );
  19805.  
  19806.         /**
  19807.          * Reads the Table object in from the profile section.
  19808.          */
  19809.         [
  19810.              helpcontext(0x1026000A)
  19811.             ,helpstring("Reads the Table object in from the profile section.")
  19812.         ]
  19813.         HRESULT  Open(
  19814.             [in, optional] VARIANT* ProfileSection, // The section name.
  19815.             [in, optional] VARIANT* ProfileName // The file name.
  19816.             );
  19817.  
  19818.         /**
  19819.          * Writes the Table object out to the profile section.
  19820.          */
  19821.         [
  19822.              helpcontext(0x1026000B)
  19823.             ,helpstring("Writes the Table object out to the profile section.")
  19824.         ]
  19825.         HRESULT  Save(
  19826.             [in, optional] VARIANT* ProfileSection, // The section name.
  19827.             [in, optional] VARIANT* ProfileName // The file name.
  19828.             );
  19829.  
  19830.         /**
  19831.          * Returns the index within the table collection of the specified table entry.
  19832.          * Private.
  19833.          */
  19834.         [
  19835.              restricted
  19836.             ,helpcontext(0x1026000C)
  19837.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  19838.         ]
  19839.         HRESULT  _FindIndex(
  19840.             [in] long TableEntryID, // The internal table ID.
  19841.             [out, retval] long* prop // The zero based index.
  19842.             );
  19843.  
  19844.         /**
  19845.          * Returns an object from the table collection for the specified table entry.
  19846.          * Private.
  19847.          */
  19848.         [
  19849.              restricted
  19850.             ,helpcontext(0x1026000D)
  19851.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  19852.         ]
  19853.         HRESULT  _ObjectFromID(
  19854.             [in] long TableEntryID, // The internal table ID.
  19855.             [out, retval] IDispatch** prop // The object.
  19856.             );
  19857.     };
  19858.  
  19859.     /**
  19860.      * A collection of TurboCAD tables.
  19861.      */
  19862.     [
  19863.          object
  19864.         ,restricted, hidden
  19865.         ,uuid(6A481139-E531-11CF-A115-00A024158DAF)
  19866.         ,oleautomation
  19867.         ,dual
  19868.         ,helpcontext(0x10270000)
  19869.         ,helpstring("A collection of TurboCAD tables.")
  19870.     ]
  19871.     interface Tables : IDispatch
  19872.     {
  19873.  
  19874.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19875.  
  19876.         /**
  19877.          * Returns an Application object that represents the owner of the specified object.
  19878.          */
  19879.         [
  19880.              propget
  19881.             ,helpcontext(0x10270001)
  19882.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  19883.         ]
  19884.         HRESULT  Application(
  19885.             [out, retval] IApplication** prop // The Application object.
  19886.             );
  19887.  
  19888.         /**
  19889.          * Returns the number of items in the collection.
  19890.          */
  19891.         [
  19892.              propget
  19893.             ,helpcontext(0x10270002)
  19894.             ,helpstring("Returns the number of items in the collection.")
  19895.         ]
  19896.         HRESULT  Count(
  19897.             [out, retval] long* prop // The number of items.
  19898.             );
  19899.  
  19900.         /**
  19901.          * Returns part of a collection.
  19902.          */
  19903.         [
  19904.              propget
  19905.             ,id(DISPID_VALUE)
  19906.             ,helpcontext(0x10270003)
  19907.             ,helpstring("Returns part of a collection.")
  19908.         ]
  19909.         HRESULT  Item(
  19910.             [in] VARIANT* Index, // Index of item to return.
  19911.             [out, retval] Table** prop // The item.
  19912.             );
  19913.  
  19914.         /**
  19915.          * Returns the parent object for the specified object.
  19916.          */
  19917.         [
  19918.              propget
  19919.             ,helpcontext(0x10270004)
  19920.             ,helpstring("Returns the parent object for the specified object.")
  19921.         ]
  19922.         HRESULT  Parent(
  19923.             [out, retval] IDispatch** prop // The parent object.
  19924.             );
  19925.  
  19926.         /**
  19927.          * Creates an enumeration object.
  19928.          */
  19929.         [
  19930.              propget
  19931.             ,restricted
  19932.             ,id(DISPID_NEWENUM)
  19933.             ,helpcontext(0x10270005)
  19934.             ,helpstring("Private.  Creates an enumeration object.")
  19935.         ]
  19936.         HRESULT  _NewEnum(
  19937.             [out, retval] IUnknown** prop // The enumeration object.
  19938.             );
  19939.  
  19940.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19941.  
  19942.     };
  19943.  
  19944.     /**
  19945.      * A TurboCAD style.
  19946.      */
  19947.     [
  19948.          object
  19949.         ,uuid(6A48113A-E531-11CF-A115-00A024158DAF)
  19950.         ,oleautomation
  19951.         ,dual
  19952.         ,helpcontext(0x10280000)
  19953.         ,helpstring("A TurboCAD style.")
  19954.     ]
  19955.     interface Style : IDispatch
  19956.     {
  19957.  
  19958.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19959.  
  19960.         /**
  19961.          * Returns an Application object that represents the owner of the specified object.
  19962.          */
  19963.         [
  19964.              propget
  19965.             ,helpcontext(0x10280001)
  19966.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  19967.         ]
  19968.         HRESULT  Application(
  19969.             [out, retval] IApplication** prop // The Application object.
  19970.             );
  19971.  
  19972.         /**
  19973.          * True if the Style object is active.
  19974.          */
  19975.         [
  19976.              propget
  19977.             ,helpcontext(0x10280002)
  19978.             ,helpstring("True if the Style object is active.")
  19979.         ]
  19980.         HRESULT  Active(
  19981.             [out, retval] IMSI_BOOL* prop // True if the Style object is active.
  19982.             );
  19983.  
  19984.         /**
  19985.          * Returns the index of the item in the collection.
  19986.          */
  19987.         [
  19988.              propget
  19989.             ,helpcontext(0x10280003)
  19990.             ,helpstring("Returns the index of the item in the collection.")
  19991.         ]
  19992.         HRESULT  Index(
  19993.             [out, retval] long* prop // The index.
  19994.             );
  19995.  
  19996.         /**
  19997.          * Returns the name of the object, as a string.
  19998.          */
  19999.         [
  20000.              propget
  20001.             ,id(DISPID_VALUE)
  20002.             ,helpcontext(0x10280004)
  20003.             ,helpstring("Returns the name of the object, as a string.")
  20004.         ]
  20005.         HRESULT  Name(
  20006.             [out, retval] BSTR* prop // The name of the object.
  20007.             );
  20008.  
  20009.         /**
  20010.          * Returns the parent object for the specified object.
  20011.          */
  20012.         [
  20013.              propget
  20014.             ,helpcontext(0x10280005)
  20015.             ,helpstring("Returns the parent object for the specified object.")
  20016.         ]
  20017.         HRESULT  Parent(
  20018.             [out, retval] IDispatch** prop // The parent object.
  20019.             );
  20020.  
  20021.         /**
  20022.          * Returns the Style object's Properties collection.
  20023.          */
  20024.         [
  20025.              propget
  20026.             ,helpcontext(0x10280006)
  20027.             ,helpstring("Returns the Style object's Properties collection.")
  20028.         ]
  20029.         HRESULT  Properties(
  20030.             [out, retval] Properties** prop // The Properties collection.
  20031.             );
  20032.  
  20033.         /**
  20034.          * Returns the Style object's defaults graphic.
  20035.          * Private.
  20036.          */
  20037.         [
  20038.              propget
  20039.             ,restricted, hidden
  20040.             ,helpcontext(0x10280007)
  20041.             ,helpstring("Private.  Returns the Style object's defaults graphic.")
  20042.         ]
  20043.         HRESULT  _Defaults(
  20044.             [out, retval] long* prop // The defaults graphic.
  20045.             );
  20046.  
  20047.         /**
  20048.          * Returns the internal table entry ID.
  20049.          * Private.
  20050.          */
  20051.         [
  20052.              propget
  20053.             ,restricted
  20054.             ,helpcontext(0x10280008)
  20055.             ,helpstring("Private.  Returns the internal table entry ID.")
  20056.         ]
  20057.         HRESULT  _TableEntryID(
  20058.             [out, retval] long* prop // The table entry ID.
  20059.             );
  20060.  
  20061.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20062.  
  20063.         /**
  20064.          * Adds a Graphic object's properties to the style.
  20065.          */
  20066.         [
  20067.              helpcontext(0x10280009)
  20068.             ,restricted, hidden
  20069.             ,helpstring("Adds a Graphic object's properties to the style.")
  20070.         ]
  20071.         HRESULT  AddGraphicProperties(
  20072.             [in] IGraphic* GraphicToAdd // The Graphic object.
  20073.             );
  20074.  
  20075.         /**
  20076.          * Deletes the object.
  20077.          */
  20078.         [
  20079.              helpcontext(0x1028000A)
  20080.             ,restricted, hidden
  20081.             ,helpstring("Deletes the object.")
  20082.         ]
  20083.         HRESULT  Delete(
  20084.             );
  20085.  
  20086.         /**
  20087.          * Duplicates the object and returns a reference to the new copy.
  20088.          */
  20089.         [
  20090.              helpcontext(0x1028000B)
  20091.             ,restricted, hidden
  20092.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  20093.         ]
  20094.         HRESULT  Duplicate(
  20095.             [in] BSTR Name, // The name for the new Style object.
  20096.             [out, retval] Style** prop // The duplicated Style object.
  20097.             );
  20098.  
  20099.         /**
  20100.          * Makes this object the active Styleobject.
  20101.          *
  20102.          */
  20103.         [
  20104.              helpcontext(0x1028000C)
  20105.             ,helpstring("Makes this object the active Style object.")
  20106.         ]
  20107.         HRESULT  Activate(
  20108.             );
  20109.  
  20110.     };
  20111.  
  20112.     /**
  20113.      * The collection of TurboCAD styles.
  20114.      */
  20115.     [
  20116.          object
  20117.         ,uuid(6A48113B-E531-11CF-A115-00A024158DAF)
  20118.         ,oleautomation
  20119.         ,dual
  20120.         ,helpcontext(0x10290000)
  20121.         ,helpstring("The collection of TurboCAD styles.")
  20122.     ]
  20123.     interface Styles : IDispatch
  20124.     {
  20125.  
  20126.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20127.  
  20128.         /**
  20129.          * Returns an Application object that represents the owner of the specified object.
  20130.          */
  20131.         [
  20132.              propget
  20133.             ,helpcontext(0x10290001)
  20134.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  20135.         ]
  20136.         HRESULT  Application(
  20137.             [out, retval] IApplication** prop // The Application object.
  20138.             );
  20139.  
  20140.         /**
  20141.          * Returns the number of items in the collection.
  20142.          */
  20143.         [
  20144.              propget
  20145.             ,helpcontext(0x10290002)
  20146.             ,helpstring("Returns the number of items in the collection.")
  20147.         ]
  20148.         HRESULT  Count(
  20149.             [out, retval] long* prop // The number of items.
  20150.             );
  20151.  
  20152.         /**
  20153.          * Returns part of a collection.
  20154.          */
  20155.         [
  20156.              propget
  20157.             ,id(DISPID_VALUE)
  20158.             ,helpcontext(0x10290003)
  20159.             ,helpstring("Returns part of a collection.")
  20160.         ]
  20161.         HRESULT  Item(
  20162.             [in] VARIANT* Index, // Index of item to return.
  20163.             [out, retval] Style** prop // The item.
  20164.             );
  20165.  
  20166.         /**
  20167.          * Returns the parent object for the specified object.
  20168.          */
  20169.         [
  20170.              propget
  20171.             ,helpcontext(0x10290004)
  20172.             ,helpstring("Returns the parent object for the specified object.")
  20173.         ]
  20174.         HRESULT  Parent(
  20175.             [out, retval] IDispatch** prop // The parent object.
  20176.             );
  20177.  
  20178.         /**
  20179.          * Creates an enumeration object.
  20180.          */
  20181.         [
  20182.              propget
  20183.             ,restricted
  20184.             ,id(DISPID_NEWENUM)
  20185.             ,helpcontext(0x10290005)
  20186.             ,helpstring("Private.  Creates an enumeration object.")
  20187.         ]
  20188.         HRESULT  _NewEnum(
  20189.             [out, retval] IUnknown** prop // The enumeration object.
  20190.             );
  20191.  
  20192.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20193.  
  20194.         /**
  20195.          * Adds a new Style object to the collection.
  20196.          */
  20197.         [
  20198.              helpcontext(0x10290006)
  20199.             ,helpstring("Adds a new Style object to the collection.")
  20200.             ,restricted, hidden
  20201.         ]
  20202.         HRESULT  Add(
  20203.             [in] BSTR Name, // A name for the new Style object.
  20204.             [in, optional] VARIANT* BasedOn, // Style object to base on.
  20205.             [in, optional] VARIANT* Properties, // Properties for the new Style object.
  20206.             [out, retval] Style** prop // The new Style object.
  20207.             );
  20208.     };
  20209.  
  20210.     /**
  20211.      * A named TurboCAD view.
  20212.      */
  20213.     [
  20214.          object
  20215.         ,uuid(6A48113C-E531-11CF-A115-00A024158DAF)
  20216.         ,oleautomation
  20217.         ,dual
  20218.         ,helpcontext(0x102A0000)
  20219.         ,helpstring("A named TurboCAD view.")
  20220.     ]
  20221.     interface NamedView : IDispatch
  20222.     {
  20223.  
  20224.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20225.  
  20226.         /**
  20227.          * Returns an Application object that represents the owner of the specified object.
  20228.          */
  20229.         [
  20230.              propget
  20231.             ,helpcontext(0x102A0001)
  20232.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  20233.         ]
  20234.         HRESULT  Application(
  20235.             [out, retval] IApplication** prop // The Application object.
  20236.             );
  20237.  
  20238.         /**
  20239.          * Returns the index of the item in the collection.
  20240.          */
  20241.         [
  20242.              propget
  20243.             ,helpcontext(0x102A0002)
  20244.             ,helpstring("Returns the index of the item in the collection.")
  20245.         ]
  20246.         HRESULT  Index(
  20247.             [out, retval] long* prop // The index.
  20248.             );
  20249.  
  20250.         /**
  20251.          * Returns the name of the object, as a string.
  20252.          */
  20253.         [
  20254.              propget
  20255.             ,helpcontext(0x102A0003)
  20256.             ,helpstring("Returns the name of the object, as a string.")
  20257.         ]
  20258.         HRESULT  Name(
  20259.             [out, retval] BSTR* prop // The name of the object.
  20260.             );
  20261.  
  20262.         /**
  20263.          * Returns the parent object for the specified object.
  20264.          */
  20265.         [
  20266.              propget
  20267.             ,helpcontext(0x102A0004)
  20268.             ,helpstring("Returns the parent object for the specified object.")
  20269.         ]
  20270.         HRESULT  Parent(
  20271.             [out, retval] IDispatch** prop // The parent object.
  20272.             );
  20273.  
  20274.         /**
  20275.          * Returns the internal table entry ID.
  20276.          * Private.
  20277.          */
  20278.         [
  20279.              propget
  20280.             ,restricted
  20281.             ,helpcontext(0x102A0005)
  20282.             ,helpstring("Private.  Returns the internal table entry ID.")
  20283.         ]
  20284.         HRESULT  _TableEntryID(
  20285.             [out, retval] long* prop // The table entry ID.
  20286.             );
  20287.  
  20288.  
  20289.         /**
  20290.          * Returns the Drawing object that owns the object.
  20291.          */
  20292.         [
  20293.              propget
  20294.             ,helpcontext(0x102A0006)
  20295.             ,helpstring("Returns the Drawing object that owns the object.")
  20296.         ]
  20297.         HRESULT  Drawing(
  20298.             [out, retval] IDrawing** prop // The Drawing object.
  20299.             );
  20300.  
  20301.         /**
  20302.          * Returns the NamedView object's BoundingBox object.
  20303.          */
  20304.         [
  20305.              propget
  20306.             ,helpcontext(0x102A0007)
  20307.             ,helpstring("Returns the NamedView object's BoundingBox object.")
  20308.         ]
  20309.         HRESULT  BoundingBox(
  20310.             [out, retval] BoundingBox** prop // The BoundingBox object.
  20311.             );
  20312.  
  20313.         /**
  20314.          * Sets the NamedView object's BoundingBox object.
  20315.          */
  20316.         [
  20317.              propput
  20318.             ,helpcontext(0x102A0007)
  20319.             ,helpstring("Sets the NamedView object's BoundingBox object.")
  20320.         ]
  20321.         HRESULT  BoundingBox(
  20322.             [in] BoundingBox* prop // The BoundingBox object.
  20323.             );
  20324.  
  20325.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20326.  
  20327.         /**
  20328.          * Deletes the object.
  20329.          */
  20330.         [
  20331.              helpcontext(0x102A0008)
  20332.             ,helpstring("Deletes the object.")
  20333.         ]
  20334.         HRESULT  Delete(
  20335.             );
  20336.  
  20337.         /**
  20338.          * Duplicates the object and returns a reference to the new copy.
  20339.          */
  20340.         [
  20341.              helpcontext(0x102A0009)
  20342.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  20343.             ,restricted, hidden
  20344.         ]
  20345.         HRESULT  Duplicate(
  20346.             [in] BSTR Name, // The name for the new NamedView object
  20347.             [out, retval] NamedView** prop // The duplicated NamedView object.
  20348.             );
  20349.     };
  20350.  
  20351.  
  20352.     /**
  20353.      * A collection of NamedView objects.
  20354.      */
  20355.     [
  20356.          object
  20357.         ,uuid(6A48113D-E531-11CF-A115-00A024158DAF)
  20358.         ,oleautomation
  20359.         ,dual
  20360.         ,helpcontext(0x102B0000)
  20361.         ,helpstring("A collection of NamedView objects.")
  20362.     ]
  20363.     interface NamedViews : IDispatch
  20364.     {
  20365.  
  20366.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20367.  
  20368.         /**
  20369.          * Returns an Application object that represents the owner of the specified object.
  20370.          */
  20371.         [
  20372.              propget
  20373.             ,helpcontext(0x102B0001)
  20374.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  20375.         ]
  20376.         HRESULT  Application(
  20377.             [out, retval] IApplication** prop // The Application object.
  20378.             );
  20379.  
  20380.         /**
  20381.          * Returns the number of items in the collection.
  20382.          */
  20383.         [
  20384.              propget
  20385.             ,helpcontext(0x102B0002)
  20386.             ,helpstring("Returns the number of items in the collection.")
  20387.         ]
  20388.         HRESULT  Count(
  20389.             [out, retval] long* prop // The number of items.
  20390.             );
  20391.  
  20392.         /**
  20393.          * Returns part of a collection.
  20394.          */
  20395.         [
  20396.              propget
  20397.             ,id(DISPID_VALUE)
  20398.             ,helpcontext(0x102B0003)
  20399.             ,helpstring("Returns part of a collection.")
  20400.         ]
  20401.         HRESULT  Item(
  20402.             [in] VARIANT* Index, // Index of item to return.
  20403.             [out, retval] NamedView** prop // The item.
  20404.             );
  20405.  
  20406.         /**
  20407.          * Returns the parent object for the specified object.
  20408.          */
  20409.         [
  20410.              propget
  20411.             ,helpcontext(0x102B0004)
  20412.             ,helpstring("Returns the parent object for the specified object.")
  20413.         ]
  20414.         HRESULT  Parent(
  20415.             [out, retval] IDispatch** prop // The parent object.
  20416.             );
  20417.  
  20418.         /**
  20419.          * Creates an enumeration object.
  20420.          */
  20421.         [
  20422.              propget
  20423.             ,restricted
  20424.             ,id(DISPID_NEWENUM)
  20425.             ,helpcontext(0x102B0005)
  20426.             ,helpstring("Private.  Creates an enumeration object.")
  20427.         ]
  20428.         HRESULT  _NewEnum(
  20429.             [out, retval] IUnknown** prop // The enumeration object.
  20430.             );
  20431.  
  20432.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20433.  
  20434.         /**
  20435.          * Adds a new NamedView object to the collection.
  20436.          */
  20437.         [
  20438.              helpcontext(0x102B0006)
  20439.             ,helpstring("Adds a new NamedView object to the collection.")
  20440.         ]
  20441.         HRESULT  Add(
  20442.             [in] BSTR Name, // The name of the new NamedView object.
  20443.             [in] double XMin, // The x coordinate of one corner (in viewport coordinates).
  20444.             [in] double YMin, // The y coordinate of one corner (in viewport coordinates).
  20445.             [in] double XMax, // The x coordinate of the other corner (in viewport coordinates).
  20446.             [in] double YMax, // The y coordinate of the other corner (in viewport coordinates).
  20447.             [out, retval] NamedView** prop // The newly created NamedView object.
  20448.             );
  20449.  
  20450.         /**
  20451.          * Returns the index within the table collection of the specified table entry.
  20452.          * Private.
  20453.          */
  20454.         [
  20455.              restricted
  20456.             ,helpcontext(0x102B0007)
  20457.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  20458.         ]
  20459.         HRESULT  _FindIndex(
  20460.             [in] long TableEntryID, // The internal table ID.
  20461.             [out, retval] long* prop // The zero based index.
  20462.             );
  20463.  
  20464.         /**
  20465.          * Returns an object from the table collection for the specified table entry.
  20466.          * Private.
  20467.          */
  20468.         [
  20469.              restricted
  20470.             ,helpcontext(0x102B0008)
  20471.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  20472.         ]
  20473.         HRESULT  _ObjectFromID(
  20474.             [in] long TableEntryID, // The internal table ID.
  20475.             [out, retval] NamedView** prop // The object.
  20476.             );
  20477.     };
  20478.  
  20479.     /**
  20480.      * A single entity in a pick operation.
  20481.      */
  20482.     [
  20483.          object
  20484.         ,uuid(6A481122-E531-11CF-A115-00A024158DAF)
  20485.         ,oleautomation
  20486.         ,dual
  20487.         ,helpcontext(0x102C0000)
  20488.         ,helpstring("A single entity in a pick operation.")
  20489.     ]
  20490.     interface PickEntry : IDispatch
  20491.     {
  20492.  
  20493.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20494.  
  20495.         /**
  20496.          * Returns an Application object that represents the owner of the specified object.
  20497.          */
  20498.         [
  20499.              propget
  20500.             ,helpcontext(0x102C0001)
  20501.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  20502.         ]
  20503.         HRESULT  Application(
  20504.             [out, retval] IApplication** prop // The Application object.
  20505.             );
  20506.  
  20507.         /**
  20508.          * Returns the closest child Graphic object in the Graphic object.
  20509.          */
  20510.         [
  20511.              propget
  20512.             ,helpcontext(0x102C0002)
  20513.             ,helpstring("Returns the closest child Graphic object in the Graphic object.")
  20514.         ]
  20515.         HRESULT  ClosestChildGraphic(
  20516.             [out, retval] IGraphic** prop // The closest child Graphic object.
  20517.             );
  20518.  
  20519.         /**
  20520.          * Returns the closest face on the entity.
  20521.          */
  20522.         [
  20523.              propget
  20524.             ,helpcontext(0x102C0003)
  20525.             ,helpstring("Returns the closest face on the entity.")
  20526.             ,restricted, hidden
  20527.         ]
  20528.         HRESULT  ClosestFace(
  20529.             [out, retval] IGraphic** prop // The face on the entity, as a Graphic object.
  20530.             );
  20531.  
  20532.         /**
  20533.          * Returns the closest point on the entity.
  20534.          */
  20535.         [
  20536.              propget
  20537.             ,helpcontext(0x102C0004)
  20538.             ,helpstring("Returns the closest point on the entity.")
  20539.         ]
  20540.         HRESULT  ClosestVertex(
  20541.             [out, retval] IVertex** prop // The closest point on the entity, as a Vertex object.
  20542.             );
  20543.  
  20544.         /**
  20545.          * Returns the closest Vertex object on the closest segment of the entity.
  20546.          */
  20547.         [
  20548.              propget
  20549.             ,helpcontext(0x102C0005)
  20550.             ,helpstring("Returns the closest Vertex object on the closest segment of the entity.")
  20551.         ]
  20552.         HRESULT  ClosestSegmentVertex(
  20553.             [out, retval] IVertex** prop // The closest Vertex object on the closest segment of the entity.
  20554.             );
  20555.  
  20556.         /**
  20557.          * Returns the depth of the closest point on the entity.
  20558.          */
  20559.         [
  20560.              propget
  20561.             ,helpcontext(0x102C0006)
  20562.             ,helpstring("Returns the depth of the closest point on the entity.")
  20563.             ,restricted, hidden
  20564.         ]
  20565.         HRESULT  Depth(
  20566.             [out, retval] double* prop // The depth of the closest point on the entity.
  20567.             );
  20568.  
  20569.         /**
  20570.          * Returns the distance from the pick ray to the closest point on the entity.
  20571.          */
  20572.         [
  20573.              propget
  20574.             ,helpcontext(0x102C0007)
  20575.             ,helpstring("Returns the distance from the pick ray to the closest point on the entity.")
  20576.         ]
  20577.         HRESULT  Distance(
  20578.             [out, retval] double* prop // The distance from the pick ray to the closest point on the entity.
  20579.             );
  20580.  
  20581.         /**
  20582.          * Returns the Drawing object that owns the object.
  20583.          */
  20584.         [
  20585.              propget
  20586.             ,helpcontext(0x102C0008)
  20587.             ,helpstring("Returns the Drawing object that owns the object.")
  20588.         ]
  20589.         HRESULT  Drawing(
  20590.             [out, retval] IDrawing** prop // The Drawing object.
  20591.             );
  20592.  
  20593.         /**
  20594.          * Returns the PickEntry object's Graphic object.
  20595.          */
  20596.         [
  20597.              propget
  20598.             ,helpcontext(0x102C0009)
  20599.             ,helpstring("Returns the PickEntry object's Graphic object.")
  20600.         ]
  20601.         HRESULT  Graphic(
  20602.             [out, retval] IGraphic** prop // The Graphic object.
  20603.             );
  20604.  
  20605.         /**
  20606.          * Returns the index of the item in the collection.
  20607.          */
  20608.         [
  20609.              propget
  20610.             ,helpcontext(0x102C000A)
  20611.             ,helpstring("Returns the index of the item in the collection.")
  20612.             ,restricted, hidden
  20613.         ]
  20614.         HRESULT  Index(
  20615.             [out, retval] long* prop // The index.
  20616.             );
  20617.  
  20618.         /**
  20619.          * Returns the other Vertex object on the closest segment of the entity.
  20620.          */
  20621.         [
  20622.              propget
  20623.             ,helpcontext(0x102C000B)
  20624.             ,helpstring("Returns the other Vertex object on the closest segment of the entity.")
  20625.             ,restricted, hidden
  20626.         ]
  20627.         HRESULT  OtherSegmentVertex(
  20628.             [out, retval] IVertex** prop // The other Vertex object on the closest segment of the entity.
  20629.             );
  20630.  
  20631.         /**
  20632.          * Returns the parent object for the specified object.
  20633.          */
  20634.         [
  20635.              propget
  20636.             ,helpcontext(0x102C000C)
  20637.             ,helpstring("Returns the parent object for the specified object.")
  20638.         ]
  20639.         HRESULT  Parent(
  20640.             [out, retval] IDispatch** prop // The parent object.
  20641.             );
  20642.  
  20643.         /**
  20644.          * Returns the ray point closest to the closest point on the entity.
  20645.          */
  20646.         [
  20647.              propget
  20648.             ,helpcontext(0x102C000D)
  20649.             ,helpstring("Returns the ray point closest to the closest point on the entity.")
  20650.             ,restricted, hidden
  20651.         ]
  20652.         HRESULT  RayPoint(
  20653.             [out, retval] IVertex** prop // The ray point, as a Vertex object.
  20654.             );
  20655.  
  20656.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20657.  
  20658.     };
  20659.  
  20660.     /**
  20661.      * The result of a pick operation.
  20662.      */
  20663.     [
  20664.          object
  20665.         ,uuid(6A481123-E531-11CF-A115-00A024158DAF)
  20666.         ,oleautomation
  20667.         ,dual
  20668.         ,helpcontext(0x102D0000)
  20669.         ,helpstring("The result of a pick operation.")
  20670.     ]
  20671.     interface PickResult : IDispatch
  20672.     {
  20673.  
  20674.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20675.  
  20676.         /**
  20677.          * Returns an Application object that represents the owner of the specified object.
  20678.          */
  20679.         [
  20680.              propget
  20681.             ,helpcontext(0x102D0001)
  20682.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  20683.         ]
  20684.         HRESULT  Application(
  20685.             [out, retval] IApplication** prop // The Application object.
  20686.             );
  20687.  
  20688.         /**
  20689.          * Returns the number of items in the collection.
  20690.          */
  20691.         [
  20692.              propget
  20693.             ,helpcontext(0x102D0002)
  20694.             ,helpstring("Returns the number of items in the collection.")
  20695.         ]
  20696.         HRESULT  Count(
  20697.             [out, retval] long* prop // The number of items.
  20698.             );
  20699.  
  20700.         /**
  20701.          * Returns part of a collection.
  20702.          */
  20703.         [
  20704.              propget
  20705.             ,id(DISPID_VALUE)
  20706.             ,helpcontext(0x102D0003)
  20707.             ,helpstring("Returns part of a collection.")
  20708.         ]
  20709.         HRESULT  Item(
  20710.             [in] VARIANT* Index, // Index of item to return.
  20711.             [out, retval] PickEntry** prop // The item.
  20712.             );
  20713.  
  20714.         /**
  20715.          * Returns the parent object for the specified object.
  20716.          */
  20717.         [
  20718.              propget
  20719.             ,helpcontext(0x102D0004)
  20720.             ,helpstring("Returns the parent object for the specified object.")
  20721.         ]
  20722.         HRESULT  Parent(
  20723.             [out, retval] IDispatch** prop // The parent object.
  20724.             );
  20725.  
  20726.         /**
  20727.          * Returns the active snap modes at the time the pick was made.
  20728.          * <p>
  20729.          * A long integer that can be tested against the ImsiSnapMode enumerated values.
  20730.          */
  20731.         [
  20732.              propget
  20733.             ,helpcontext(0x102D0005)
  20734.             ,helpstring("Returns the active snap modes at the time the pick was made.")
  20735.         ]
  20736.         HRESULT  SnapModes(
  20737.             [out, retval] long* prop // The active snap modes.
  20738.             );
  20739.  
  20740.         /**
  20741.          * Returns the active snap modes at the time the pick was made.
  20742.          * <p>
  20743.          * Returns a Vertices collection which contains the vertex or vertices which defined the pick.
  20744.          */
  20745.         [
  20746.              propget
  20747.             ,helpcontext(0x102D0006)
  20748.             ,helpstring("Returns a Vertices collection which contains the vertex or vertices which defined the pick.")
  20749.         ]
  20750.         HRESULT  Vertices(
  20751.             [out, retval] Vertices** prop // The Vertices collection
  20752.             );
  20753.  
  20754.         /**
  20755.          * Creates an enumeration object.
  20756.          */
  20757.         [
  20758.              propget
  20759.             ,restricted, hidden
  20760.             ,id(DISPID_NEWENUM)
  20761.             ,helpcontext(0x102D0007)
  20762.             ,helpstring("Private.  Creates an enumeration object.")
  20763.         ]
  20764.         HRESULT  _NewEnum(
  20765.             [out, retval] IUnknown** prop // The enumeration object.
  20766.             );
  20767.  
  20768.         /**
  20769.          * Returns the actual vertex of the mouse click
  20770.          * 
  20771.          */
  20772.  
  20773.         [
  20774.              propget
  20775.             ,helpcontext(0x102D0008)
  20776.             ,helpstring("Returns the actual vertex of the mouse click.")
  20777.         ]
  20778.         HRESULT  PickVertex(
  20779.             [out, retval] IVertex** prop // The mouse click
  20780.             );
  20781.  
  20782.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20783.  
  20784.     };
  20785.  
  20786.     /**
  20787.      * A TurboCAD window object.
  20788.      */
  20789.     [
  20790.          object
  20791.         ,uuid(6A481124-E531-11CF-A115-00A024158DAF)
  20792.         ,oleautomation
  20793.         ,dual
  20794.         ,helpcontext(0x102E0000)
  20795.         ,helpstring("A TurboCAD window object.")
  20796.     ]
  20797.     interface Window : IDispatch
  20798.     {
  20799.  
  20800.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20801.  
  20802.         /**
  20803.          * True if the Window object is active.
  20804.          */
  20805.         [
  20806.              propget
  20807.             ,helpcontext(0x102E0001)
  20808.             ,helpstring("True if the Window object is active.")
  20809.         ]
  20810.         HRESULT  Active(
  20811.             [out, retval] IMSI_BOOL* prop // True if the Window object is active.
  20812.             );
  20813.  
  20814.         /**
  20815.          * Returns an Application object that represents the owner of the specified object.
  20816.          */
  20817.         [
  20818.              propget
  20819.             ,helpcontext(0x102E0002)
  20820.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  20821.         ]
  20822.         HRESULT  Application(
  20823.             [out, retval] IApplication** prop // The Application object.
  20824.             );
  20825.  
  20826.         /**
  20827.          * Returns the text that appears in the title bar of the Window object.
  20828.          */
  20829.         [
  20830.              propget
  20831.             ,helpcontext(0x102E0003)
  20832.             ,helpstring("Returns the text that appears in the title bar of the Window object.")
  20833.         ]
  20834.         HRESULT  Caption(
  20835.             [out, retval] BSTR* prop // The title bar caption, as a string.
  20836.             );
  20837.  
  20838.         /**
  20839.          * Sets the text that appears in the title bar of the Window object.
  20840.          */
  20841.         [
  20842.              propput
  20843.             ,helpcontext(0x102E0003)
  20844.             ,helpstring("Sets the text that appears in the title bar of the Window object.")
  20845.         ]
  20846.         HRESULT  Caption(
  20847.             [in] BSTR prop // The title bar caption, as a string.
  20848.             );
  20849.  
  20850.         /**
  20851.          * True if rulers are visible.
  20852.          */
  20853.         [
  20854.              propget
  20855.             ,helpcontext(0x102E0004)
  20856.             ,helpstring("True if rulers are visible.")
  20857.             ,restricted, hidden
  20858.         ]
  20859.         HRESULT  DisplayRulers(
  20860.             [out, retval] IMSI_BOOL* prop // True if rulers are visible.
  20861.             );
  20862.  
  20863.         /**
  20864.          * True if rulers are visible.
  20865.          */
  20866.         [
  20867.              propput
  20868.             ,helpcontext(0x102E0004)
  20869.             ,helpstring("True if rulers are visible.")
  20870.             ,restricted, hidden
  20871.         ]
  20872.         HRESULT  DisplayRulers(
  20873.             [in] IMSI_BOOL prop // True if rulers are visible.
  20874.             );
  20875.  
  20876.         /**
  20877.          * True if scroll bars are visible.
  20878.          */
  20879.         [
  20880.              propget
  20881.             ,helpcontext(0x102E0005)
  20882.             ,helpstring("True if scroll bars are visible.")
  20883.             ,restricted, hidden
  20884.         ]
  20885.         HRESULT  DisplayScrollBars(
  20886.             [out, retval] IMSI_BOOL* prop // True if scroll bars are visible.
  20887.             );
  20888.  
  20889.         /**
  20890.          * True if scroll bars are visible.
  20891.          */
  20892.         [
  20893.              propput
  20894.             ,helpcontext(0x102E0005)
  20895.             ,helpstring("True if scroll bars are visible.")
  20896.             ,restricted, hidden
  20897.         ]
  20898.         HRESULT  DisplayScrollBars(
  20899.             [in] IMSI_BOOL prop // True if scroll bars are visible.
  20900.             );
  20901.  
  20902.         /**
  20903.          * Returns the height of the Window object.
  20904.          */
  20905.         [
  20906.              propget
  20907.             ,helpcontext(0x102E0006)
  20908.             ,helpstring("Returns the height of the Window object.")
  20909.         ]
  20910.         HRESULT  Height(
  20911.             [out, retval] double* prop // The height of the Window object.
  20912.             );
  20913.  
  20914.         /**
  20915.          * Sets the height of the Window object.
  20916.          */
  20917.         [
  20918.              propput
  20919.             ,helpcontext(0x102E0006)
  20920.             ,helpstring("Sets the height of the Window object.")
  20921.         ]
  20922.         HRESULT  Height(
  20923.             [in] double prop // The height of the Window object.
  20924.             );
  20925.  
  20926.         /**
  20927.          * Returns the index of the item in the collection.
  20928.          */
  20929.         [
  20930.              propget
  20931.             ,helpcontext(0x102E0007)
  20932.             ,helpstring("Returns the index of the item in the collection.")
  20933.             ,restricted, hidden
  20934.         ]
  20935.         HRESULT  Index(
  20936.             [out, retval] long* prop // The index.
  20937.             );
  20938.  
  20939.         /**
  20940.          * Returns the distance from the left edge of the physical screen to the left edge of the Window object, in points.
  20941.          */
  20942.         [
  20943.              propget
  20944.             ,helpcontext(0x102E0008)
  20945.             ,helpstring("Returns the distance from the left edge of the physical screen to the left edge of the Window object, in points.")
  20946.         ]
  20947.         HRESULT  Left(
  20948.             [out, retval] double* prop // The Window object's left edge distance.
  20949.             );
  20950.  
  20951.         /**
  20952.          * Sets the distance from the left edge of the physical screen to the left edge of the Window object, in points.
  20953.          */
  20954.         [
  20955.              propput
  20956.             ,helpcontext(0x102E0008)
  20957.             ,helpstring("Sets the distance from the left edge of the physical screen to the left edge of the Window object, in points.")
  20958.         ]
  20959.         HRESULT  Left(
  20960.             [in] double prop // The Window object's left edge distance.
  20961.             );
  20962.  
  20963.         /**
  20964.          * Returns the parent object for the specified object.
  20965.          */
  20966.         [
  20967.              propget
  20968.             ,helpcontext(0x102E0009)
  20969.             ,helpstring("Returns the parent object for the specified object.")
  20970.             ,restricted, hidden
  20971.         ]
  20972.         HRESULT  Parent(
  20973.             [out, retval] IDispatch** prop // The parent object.
  20974.             );
  20975.  
  20976.         /**
  20977.          * The distance from the top edge of the physical screen to the top edge of the Window object, in points.
  20978.          */
  20979.         [
  20980.              propget
  20981.             ,helpcontext(0x102E000A)
  20982.             ,helpstring("The distance from the top edge of the physical screen to the top edge of the Window object, in points.")
  20983.         ]
  20984.         HRESULT  Top(
  20985.             [out, retval] double* prop // The Window object's top edge distance.
  20986.             );
  20987.  
  20988.         /**
  20989.          * The distance from the top edge of the physical screen to the top edge of the Window object, in points.
  20990.          */
  20991.         [
  20992.              propput
  20993.             ,helpcontext(0x102E000A)
  20994.             ,helpstring("The distance from the top edge of the physical screen to the top edge of the Window object, in points.")
  20995.         ]
  20996.         HRESULT  Top(
  20997.             [in] double prop // The Window object's top edge distance.
  20998.             );
  20999.  
  21000.         /**
  21001.          * Returns the type of the Window object.
  21002.          */
  21003.         [
  21004.              propget
  21005.             ,helpcontext(0x102E000B)
  21006.             ,helpstring("Returns the type of the Window object.")
  21007.         ]
  21008.         HRESULT  Type(
  21009.             [out, retval] ImsiWindowType* prop // The type of the Window object.
  21010.             );
  21011.  
  21012.         /**
  21013.          * Returns the height of the space that can be used in the Window object area (the window is not maximized).
  21014.          */
  21015.         [
  21016.              propget
  21017.             ,helpcontext(0x102E000C)
  21018.             ,helpstring("Returns the height of the space that can be used in the Window object area (the window is not maximized).")
  21019.         ]
  21020.         HRESULT  UsableHeight(
  21021.             [out, retval] double* prop // The usable height.
  21022.             );
  21023.  
  21024.         /**
  21025.          * Returns the width of the space that can be used in the Window object area (the window is not maximized).
  21026.          */
  21027.         [
  21028.              propget
  21029.             ,helpcontext(0x102E000D)
  21030.             ,helpstring("Returns the width of the space that can be used in the Window object area (the window is not maximized).")
  21031.         ]
  21032.         HRESULT  UsableWidth(
  21033.             [out, retval] double* prop // The usable width.
  21034.             );
  21035.  
  21036.         /**
  21037.          * True if the Window object is visible.
  21038.          */
  21039.         [
  21040.              propget
  21041.             ,helpcontext(0x102E000E)
  21042.             ,helpstring("True if the Window object is visible.")
  21043.         ]
  21044.         HRESULT  Visible(
  21045.             [out, retval] IMSI_BOOL* prop // True if the Window object is visible.
  21046.             );
  21047.  
  21048.         /**
  21049.          * True if the Window object is visible.
  21050.          */
  21051.         [
  21052.              propput
  21053.             ,helpcontext(0x102E000E)
  21054.             ,helpstring("True if the Window object is visible.")
  21055.         ]
  21056.         HRESULT  Visible(
  21057.             [in] IMSI_BOOL prop // True if the Window object is visible.
  21058.             );
  21059.  
  21060.         /**
  21061.          * The distance from the left edge of the application window to the right edge of the application window.
  21062.          */
  21063.         [
  21064.              propget
  21065.             ,helpcontext(0x102E000F)
  21066.             ,helpstring("The distance from the left edge of the application window to the right edge of the application window.")
  21067.         ]
  21068.         HRESULT  Width(
  21069.             [out, retval] double* prop // The width of the Window object.
  21070.             );
  21071.  
  21072.         /**
  21073.          * The distance from the left edge of the application window to the right edge of the application window.
  21074.          */
  21075.         [
  21076.              propput
  21077.             ,helpcontext(0x102E000F)
  21078.             ,helpstring("The distance from the left edge of the application window to the right edge of the application window.")
  21079.         ]
  21080.         HRESULT  Width(
  21081.             [in] double prop // The width of the Window object.
  21082.             );
  21083.  
  21084.         /**
  21085.          * Returns the number of the window.
  21086.          */
  21087.         [
  21088.              propget
  21089.             ,helpcontext(0x102E0010)
  21090.             ,helpstring("Returns the number of the window.")
  21091.             ,restricted, hidden
  21092.         ]
  21093.         HRESULT  WindowNumber(
  21094.             [out, retval] long* prop // The window number
  21095.             );
  21096.  
  21097.         /**
  21098.          * Returns the state of the window.
  21099.          */
  21100.         [
  21101.              propget
  21102.             ,helpcontext(0x102E0011)
  21103.             ,helpstring("Returns the state of the window.")
  21104.             ,restricted, hidden
  21105.         ]
  21106.         HRESULT  WindowState(
  21107.             [out, retval] ImsiWindowState* prop // The window state.
  21108.             );
  21109.  
  21110.         /**
  21111.          * Sets the state of the window.
  21112.          */
  21113.         [
  21114.              propput
  21115.             ,helpcontext(0x102E0011)
  21116.             ,helpstring("Sets the state of the window.")
  21117.             ,restricted, hidden
  21118.         ]
  21119.         HRESULT  WindowState(
  21120.             [in] ImsiWindowState prop // The window state.
  21121.             );
  21122.  
  21123.         /**
  21124.          * Returns the zoom level as a percentage of actual size.
  21125.          */
  21126.         [
  21127.              propget
  21128.             ,helpcontext(0x102E0012)
  21129.             ,helpstring("Returns the zoom level as a percentage of actual size.")
  21130.             ,restricted, hidden
  21131.         ]
  21132.         HRESULT  Zoom(
  21133.             [out, retval] double* prop // The zoom level.
  21134.             );
  21135.  
  21136.         /**
  21137.          * Sets the zoom level as a percentage of actual size.
  21138.          */
  21139.         [
  21140.              propput
  21141.             ,helpcontext(0x102E0012)
  21142.             ,helpstring("Sets the zoom level as a percentage of actual size.")
  21143.             ,restricted, hidden
  21144.         ]
  21145.         HRESULT  Zoom(
  21146.             [in] double prop // The zoom level.
  21147.             );
  21148.  
  21149.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21150.  
  21151.         /**
  21152.          * Makes this object the active Window object.
  21153.          *
  21154.          * @see TCADAPI TCWDrawingActivate function
  21155.          */
  21156.         [
  21157.              helpcontext(0x102E0013)
  21158.             ,helpstring("Makes this object the active Window object.")
  21159.             ,restricted, hidden
  21160.         ]
  21161.         HRESULT  Activate(
  21162.             );
  21163.  
  21164.         /**
  21165.          * Closes the Window object.
  21166.          *
  21167.          * @see TCADAPI TCWDrawingClose function.
  21168.          */
  21169.         [
  21170.              helpcontext(0x102E0014)
  21171.             ,helpstring("Closes the Window object.")
  21172.             ,restricted, hidden
  21173.         ]
  21174.         HRESULT  Close(
  21175.             [in, optional] VARIANT* SaveChanges, // True to save changes.
  21176.             [in, optional] VARIANT* FileName, // Alternate file name to save as.
  21177.             [in, optional] VARIANT* Filter // Name or index of preferred filter.
  21178.             );
  21179.  
  21180.         /**
  21181.          * Scrolls a large amount.
  21182.          */
  21183.         [
  21184.              helpcontext(0x102E0015)
  21185.             ,helpstring("Scrolls a large amount.")
  21186.             ,restricted, hidden
  21187.         ]
  21188.         HRESULT  LargeScroll(
  21189.             [in, optional] VARIANT* Down, // Number of pages to scroll down.
  21190.             [in, optional] VARIANT* Up, // Number of pages to scroll up.
  21191.             [in, optional] VARIANT* ToRight, // Number of pages to scroll right.
  21192.             [in, optional] VARIANT* ToLeft // Number of pages to scroll left.
  21193.             );
  21194.  
  21195.         /**
  21196.          * Creates another Window object on this Window object's Drawing object.
  21197.          */
  21198.         [
  21199.              helpcontext(0x102E0016)
  21200.             ,helpstring("Creates another Window object on this Window object's Drawing object.")
  21201.             ,restricted, hidden
  21202.         ]
  21203.         HRESULT  NewWindow(
  21204.             [out, retval] Window** prop // The newly created Window object.
  21205.             );
  21206.  
  21207.         /**
  21208.          * Scrolls a small amount.
  21209.          */
  21210.         [
  21211.              helpcontext(0x102E0017)
  21212.             ,helpstring("Scrolls a small amount.")
  21213.             ,restricted, hidden
  21214.         ]
  21215.         HRESULT  SmallScroll(
  21216.             [in, optional] VARIANT* Down, // Number of lines to scroll down.
  21217.             [in, optional] VARIANT* Up, // Number of lines to scroll up.
  21218.             [in, optional] VARIANT* ToRight, // Number of lines to scroll right.
  21219.             [in, optional] VARIANT* ToLeft // Number of lines to scroll left.
  21220.             );
  21221.     };
  21222.  
  21223.     /**
  21224.      * The collection of TurboCAD windows.
  21225.      */
  21226.     [
  21227.          object
  21228.         ,restricted, hidden
  21229.         ,uuid(6A481125-E531-11CF-A115-00A024158DAF)
  21230.         ,oleautomation
  21231.         ,dual
  21232.         ,helpcontext(0x102F0000)
  21233.         ,helpstring("The collection of TurboCAD windows.")
  21234.     ]
  21235.     interface Windows : IDispatch
  21236.     {
  21237.  
  21238.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21239.  
  21240.         /**
  21241.          * Returns an Application object that represents the owner of the specified object.
  21242.          */
  21243.         [
  21244.              propget
  21245.             ,helpcontext(0x102F0001)
  21246.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  21247.         ]
  21248.         HRESULT  Application(
  21249.             [out, retval] IApplication** prop // The Application object.
  21250.             );
  21251.  
  21252.         /**
  21253.          * Returns the number of items in the collection.
  21254.          */
  21255.         [
  21256.              propget
  21257.             ,restricted, hidden
  21258.             ,helpcontext(0x102F0002)
  21259.             ,helpstring("Returns the number of items in the collection.")
  21260.         ]
  21261.         HRESULT  Count(
  21262.             [out, retval] long* prop // The number of items.
  21263.             );
  21264.  
  21265.         /**
  21266.          * Returns part of a collection.
  21267.          */
  21268.         [
  21269.              propget
  21270.             ,restricted, hidden
  21271.             ,id(DISPID_VALUE)
  21272.             ,helpcontext(0x102F0003)
  21273.             ,helpstring("Returns part of a collection.")
  21274.         ]
  21275.         HRESULT  Item(
  21276.             [in] VARIANT* Index, // Index of item to return.
  21277.             [out, retval] Window** prop // The item.
  21278.             );
  21279.  
  21280.         /**
  21281.          * Returns the parent object for the specified object.
  21282.          */
  21283.         [
  21284.              propget
  21285.             ,restricted, hidden
  21286.             ,helpcontext(0x102F0004)
  21287.             ,helpstring("Returns the parent object for the specified object.")
  21288.         ]
  21289.         HRESULT  Parent(
  21290.             [out, retval] IDispatch** prop // The parent object.
  21291.             );
  21292.  
  21293.         /**
  21294.          * Creates an enumeration object.
  21295.          */
  21296.         [
  21297.              propget
  21298.             ,restricted, hidden
  21299.             ,id(DISPID_NEWENUM)
  21300.             ,helpcontext(0x102F0005)
  21301.             ,helpstring("Private.  Creates an enumeration object.")
  21302.         ]
  21303.         HRESULT  _NewEnum(
  21304.             [out, retval] IUnknown** prop // The enumeration object.
  21305.             );
  21306.  
  21307.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21308.  
  21309.         /**
  21310.          * Arranges all the Window objects.
  21311.          */
  21312.         [
  21313.              helpcontext(0x102F0006)
  21314.             ,helpstring("Arranges all the Window objects.")
  21315.             ,restricted, hidden
  21316.         ]
  21317.         HRESULT  Arrange(
  21318.             [in] ImsiArrangeStyle ArrangeStyle // The style to arrange.
  21319.             );
  21320.     };
  21321.  
  21322.     /**
  21323.      * An accelerator key binding.
  21324.      */
  21325.     [
  21326.          object
  21327.         ,restricted, hidden
  21328.         ,uuid(6A481126-E531-11CF-A115-00A024158DAF)
  21329.         ,oleautomation
  21330.         ,dual
  21331.         ,helpcontext(0x10300000)
  21332.         ,helpstring("An accelerator key binding.")
  21333.     ]
  21334.     interface KeyBinding : IDispatch
  21335.     {
  21336.  
  21337.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21338.  
  21339.         /**
  21340.          * Returns an Application object that represents the owner of the specified object.
  21341.          */
  21342.         [
  21343.              propget
  21344.             ,helpcontext(0x10300001)
  21345.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  21346.         ]
  21347.         HRESULT  Application(
  21348.             [out, retval] IApplication** prop // The Application object.
  21349.             );
  21350.  
  21351.         /**
  21352.          * Returns the command associated with the key, as a string.
  21353.          */
  21354.         [
  21355.              propget
  21356.             ,helpcontext(0x10300002)
  21357.             ,helpstring("Returns the command associated with the key, as a string.")
  21358.         ]
  21359.         HRESULT  Command(
  21360.             [out, retval] BSTR* prop // The command associated with the key.
  21361.             );
  21362.  
  21363.         /**
  21364.          * Returns the command parameter associated with the key, as a string.
  21365.          */
  21366.         [
  21367.              propget
  21368.             ,helpcontext(0x10300003)
  21369.             ,helpstring("Returns the command parameter associated with the key, as a string.")
  21370.         ]
  21371.         HRESULT  CommandParameter(
  21372.             [out, retval] BSTR* prop // The command parameter associated with the key.
  21373.             );
  21374.  
  21375.         /**
  21376.          * True if the object is enabled.
  21377.          */
  21378.         [
  21379.              propget
  21380.             ,helpcontext(0x10300004)
  21381.             ,helpstring("True if the object is enabled.")
  21382.         ]
  21383.         HRESULT  Enabled(
  21384.             [out, retval] IMSI_BOOL* prop // True if the object is enabled.
  21385.             );
  21386.  
  21387.         /**
  21388.          * True if the object is enabled.
  21389.          */
  21390.         [
  21391.              propput
  21392.             ,helpcontext(0x10300004)
  21393.             ,helpstring("True if the object is enabled.")
  21394.         ]
  21395.         HRESULT  Enabled(
  21396.             [in] IMSI_BOOL prop // True if the object is enabled.
  21397.             );
  21398.  
  21399.         /**
  21400.          * Returns the index of the item in the collection.
  21401.          */
  21402.         [
  21403.              propget
  21404.             ,helpcontext(0x10300005)
  21405.             ,helpstring("Returns the index of the item in the collection.")
  21406.         ]
  21407.         HRESULT  Index(
  21408.             [out, retval] long* prop // The index.
  21409.             );
  21410.  
  21411.         /**
  21412.          * Returns the category of the key.
  21413.          */
  21414.         [
  21415.              propget
  21416.             ,helpcontext(0x10300006)
  21417.             ,helpstring("Returns the category of the key.")
  21418.         ]
  21419.         HRESULT  KeyCategory(
  21420.             [out, retval] ImsiKeyCategory* prop // The category of the key.
  21421.             );
  21422.  
  21423.         /**
  21424.          * Returns the first code value of the key.
  21425.          */
  21426.         [
  21427.              propget
  21428.             ,helpcontext(0x10300007)
  21429.             ,helpstring("Returns the first code value of the key.")
  21430.         ]
  21431.         HRESULT  KeyCode(
  21432.             [out, retval] long* prop // The first code value.
  21433.             );
  21434.  
  21435.         /**
  21436.          * Returns the second code value of the key.
  21437.          */
  21438.         [
  21439.              propget
  21440.             ,helpcontext(0x10300008)
  21441.             ,helpstring("Returns the second code value of the key.")
  21442.         ]
  21443.         HRESULT  KeyCode2(
  21444.             [out, retval] long* prop // The second code value.
  21445.             );
  21446.  
  21447.         /**
  21448.          * Returns the user visible string associated with the key, as a string.
  21449.          */
  21450.         [
  21451.              propget
  21452.             ,helpcontext(0x10300009)
  21453.             ,helpstring("Returns the user visible string associated with the key, as a string.")
  21454.         ]
  21455.         HRESULT  KeyString(
  21456.             [out, retval] BSTR* prop // The user visible string associated with the key.
  21457.             );
  21458.  
  21459.         /**
  21460.          * Returns the parent object for the specified object.
  21461.          */
  21462.         [
  21463.              propget
  21464.             ,helpcontext(0x1030000A)
  21465.             ,helpstring("Returns the parent object for the specified object.")
  21466.         ]
  21467.         HRESULT  Parent(
  21468.             [out, retval] IDispatch** prop // The parent object.
  21469.             );
  21470.  
  21471.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21472.  
  21473.         /**
  21474.          * Deletes the object.
  21475.          */
  21476.         [
  21477.              helpcontext(0x1030000B)
  21478.             ,helpstring("Deletes the object.")
  21479.         ]
  21480.         HRESULT  Delete(
  21481.             );
  21482.  
  21483.         /**
  21484.          * Performs the action specified by the KeyBinding object.
  21485.          */
  21486.         [
  21487.              helpcontext(0x1030000C)
  21488.             ,helpstring("Performs the action specified by the KeyBinding object.")
  21489.         ]
  21490.         HRESULT  Execute(
  21491.             );
  21492.  
  21493.         /**
  21494.          * Binds the key to a new command.
  21495.          */
  21496.         [
  21497.              helpcontext(0x1030000D)
  21498.             ,helpstring("Binds the key to a new command.")
  21499.         ]
  21500.         HRESULT  Rebind(
  21501.             [in] ImsiKeyCategory KeyCategory, // Category of the key.
  21502.             [in] BSTR Command, // Name of the command associate with the key.
  21503.             [in, optional] VARIANT* CommandParameter // Command parameter string.
  21504.             );
  21505.     };
  21506.  
  21507.     /**
  21508.      * The collection of accelerator key bindings.
  21509.      */
  21510.     [
  21511.          object
  21512.         ,restricted, hidden
  21513.         ,uuid(6A481127-E531-11CF-A115-00A024158DAF)
  21514.         ,oleautomation
  21515.         ,dual
  21516.         ,helpcontext(0x10310000)
  21517.         ,helpstring("The collection of accelerator key bindings.")
  21518.     ]
  21519.     interface KeyBindings : IDispatch
  21520.     {
  21521.  
  21522.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21523.  
  21524.         /**
  21525.          * Returns an Application object that represents the owner of the specified object.
  21526.          */
  21527.         [
  21528.              propget
  21529.             ,helpcontext(0x10310001)
  21530.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  21531.         ]
  21532.         HRESULT  Application(
  21533.             [out, retval] IApplication** prop // The Application object.
  21534.             );
  21535.  
  21536.         /**
  21537.          * Returns the number of items in the collection.
  21538.          */
  21539.         [
  21540.              propget
  21541.             ,helpcontext(0x10310002)
  21542.             ,helpstring("Returns the number of items in the collection.")
  21543.         ]
  21544.         HRESULT  Count(
  21545.             [out, retval] long* prop // The number of items.
  21546.             );
  21547.  
  21548.         /**
  21549.          * Returns part of a collection.
  21550.          */
  21551.         [
  21552.              propget
  21553.             ,id(DISPID_VALUE)
  21554.             ,helpcontext(0x10310003)
  21555.             ,helpstring("Returns part of a collection.")
  21556.         ]
  21557.         HRESULT  Item(
  21558.             [in] VARIANT* Index, // Index of item to return.
  21559.             [out, retval] KeyBinding** prop // The item.
  21560.             );
  21561.  
  21562.         /**
  21563.          * Returns the parent object for the specified object.
  21564.          */
  21565.         [
  21566.              propget
  21567.             ,helpcontext(0x10310004)
  21568.             ,helpstring("Returns the parent object for the specified object.")
  21569.         ]
  21570.         HRESULT  Parent(
  21571.             [out, retval] IDispatch** prop // The parent object.
  21572.             );
  21573.  
  21574.         /**
  21575.          * Creates an enumeration object.
  21576.          */
  21577.         [
  21578.              propget
  21579.             ,restricted
  21580.             ,id(DISPID_NEWENUM)
  21581.             ,helpcontext(0x10310005)
  21582.             ,helpstring("Private.  Creates an enumeration object.")
  21583.         ]
  21584.         HRESULT  _NewEnum(
  21585.             [out, retval] IUnknown** prop // The enumeration object.
  21586.             );
  21587.  
  21588.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21589.  
  21590.         /**
  21591.          * Adds a KeyBinding object to the collection.
  21592.          */
  21593.         [
  21594.              helpcontext(0x10310006)
  21595.             ,helpstring("Adds a KeyBinding object to the collection.")
  21596.         ]
  21597.         HRESULT  Add(
  21598.             [in] ImsiKeyCategory KeyCategory, // Category of the new key.
  21599.             [in] BSTR Command, // Command associated with the key.
  21600.             [in] long KeyCode, // First key code value.
  21601.             [in] VARIANT* KeyCode2, // Second key code value.
  21602.             [in, optional] VARIANT* CommandParameter, // Command parameter associated with the key.
  21603.             [out, retval] KeyBinding** prop // New KeyBinding object created.
  21604.             );
  21605.  
  21606.         /**
  21607.          * Removes all KeyBinding objects from the collection.
  21608.          */
  21609.         [
  21610.              helpcontext(0x10310007)
  21611.             ,helpstring("Removes all KeyBinding objects from the collection.")
  21612.         ]
  21613.         HRESULT  ClearAll(
  21614.             );
  21615.  
  21616.         /**
  21617.          * Sets the current configuration of the KeyBindings collection to a file.
  21618.          */
  21619.         [
  21620.              helpcontext(0x10310008)
  21621.             ,helpstring("Sets the current configuration of the KeyBindings collection to a file.")
  21622.         ]
  21623.         HRESULT  Open(
  21624.             [in] BSTR FileName // The name of the file.
  21625.             );
  21626.  
  21627.         /**
  21628.          * Finds a KeyBinding object within the collection.
  21629.          */
  21630.         [
  21631.              helpcontext(0x10310009)
  21632.             ,helpstring("Finds a KeyBinding object within the collection.")
  21633.         ]
  21634.         HRESULT  Key(
  21635.             [in] long KeyCode, // First key value.
  21636.             [in] VARIANT* KeyCode2, // Second key value.
  21637.             [out, retval] KeyBinding** prop // KeyBinding object found.
  21638.             );
  21639.  
  21640.         /**
  21641.          * Saves the current configuration of the KeyBindings collection to a file.
  21642.          */
  21643.         [
  21644.              helpcontext(0x1031000A)
  21645.             ,helpstring("Saves the current configuration of the KeyBindings collection to a file.")
  21646.         ]
  21647.         HRESULT  Save(
  21648.             [in] BSTR FileName // The name of the file.
  21649.             );
  21650.  
  21651.     };
  21652.  
  21653.     /**
  21654.      * A customizable command bar.
  21655.      */
  21656.     [
  21657.          object
  21658.         ,restricted, hidden
  21659.         ,uuid(6A48112A-E531-11CF-A115-00A024158DAF)
  21660.         ,oleautomation
  21661.         ,dual
  21662.         ,helpcontext(0x10320000)
  21663.         ,helpstring("A customizable command bar.")
  21664.     ]
  21665.     interface CommandBar : IDispatch
  21666.     {
  21667.  
  21668.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21669.  
  21670.         /**
  21671.          * Returns an Application object that represents the owner of the specified CommandBar object.
  21672.          */
  21673.         [
  21674.              propget
  21675.             ,helpcontext(0x10320001)
  21676.             ,helpstring("Returns an Application object that represents the creator of the specified CommandBar object.")
  21677.         ]
  21678.         HRESULT  Application(
  21679.             [out, retval] IApplication** prop // The Application object.
  21680.             );
  21681.  
  21682.         /**
  21683.          * True if the CommandBar object is built-in.
  21684.          */
  21685.         [
  21686.              propget
  21687.             ,helpcontext(0x10320002)
  21688.             ,helpstring("True if the CommandBar object is built-in.")
  21689.         ]
  21690.         HRESULT  Builtin(
  21691.             [out, retval] IMSI_BOOL* prop // True if the CommandBar object is built-in.
  21692.             );
  21693.  
  21694.         /**
  21695.          * Returns the CommandBarControls collection.
  21696.          */
  21697.         [
  21698.              propget
  21699.             ,helpcontext(0x10320003)
  21700.             ,helpstring("Returns the CommandBarControls collection.")
  21701.         ]
  21702.         HRESULT  Controls(
  21703.             [out, retval] CommandBarControls** prop // The CommandBarControls collection.
  21704.             );
  21705.  
  21706.         /**
  21707.          * True if the CommandBar object is enabled.
  21708.          */
  21709.         [
  21710.              propget
  21711.             ,helpcontext(0x10320004)
  21712.             ,helpstring("True if the CommandBar object is enabled.")
  21713.         ]
  21714.         HRESULT  Enabled(
  21715.             [out, retval] IMSI_BOOL* prop // True if the CommandBar object is enabled.
  21716.             );
  21717.  
  21718.         /**
  21719.          * True if the CommandBar object is enabled.
  21720.          */
  21721.         [
  21722.              propput
  21723.             ,helpcontext(0x10320004)
  21724.             ,helpstring("True if the CommandBar object is enabled.")
  21725.         ]
  21726.         HRESULT  Enabled(
  21727.             [in] IMSI_BOOL prop // True if the CommandBar object is enabled.
  21728.             );
  21729.  
  21730.         /**
  21731.          * Returns the height of the CommandBar object.
  21732.          */
  21733.         [
  21734.              propget
  21735.             ,helpcontext(0x10320005)
  21736.             ,helpstring("Returns the height of the CommandBar object.")
  21737.         ]
  21738.         HRESULT  Height(
  21739.             [out, retval] double* prop // The height of the CommandBar object.
  21740.             );
  21741.  
  21742.         /**
  21743.          * Sets the height of the CommandBar object.
  21744.          */
  21745.         [
  21746.              propput
  21747.             ,helpcontext(0x10320005)
  21748.             ,helpstring("Sets the height of the CommandBar object.")
  21749.         ]
  21750.         HRESULT  Height(
  21751.             [in] double prop // The height of the CommandBar object.
  21752.             );
  21753.  
  21754.         /**
  21755.          * Returns the index of the item in the collection.
  21756.          */
  21757.         [
  21758.              propget
  21759.             ,helpcontext(0x10320006)
  21760.             ,helpstring("Returns the index of the item in the collection.")
  21761.         ]
  21762.         HRESULT  Index(
  21763.             [out, retval] long* prop // The index.
  21764.             );
  21765.  
  21766.         /**
  21767.          * Returns the horizontal position of the CommandBar object.
  21768.          */
  21769.         [
  21770.              propget
  21771.             ,helpcontext(0x10320007)
  21772.             ,helpstring("Returns the horizontal position of the CommandBar object.")
  21773.         ]
  21774.         HRESULT  Left(
  21775.             [out, retval] double* prop // The horizontal position of the CommandBar object.
  21776.             );
  21777.  
  21778.         /**
  21779.          * Sets the horizontal position of the CommandBar object.
  21780.          */
  21781.         [
  21782.              propput
  21783.             ,helpcontext(0x10320007)
  21784.             ,helpstring("Sets the horizontal position of the CommandBar object.")
  21785.         ]
  21786.         HRESULT  Left(
  21787.             [in] double prop // The horizontal position of the CommandBar object.
  21788.             );
  21789.  
  21790.         /**
  21791.          * Returns the name of the CommandBar object, as a string.
  21792.          */
  21793.         [
  21794.              propget
  21795.             ,helpcontext(0x10320008)
  21796.             ,helpstring("Returns the name of the CommandBar object, as a string.")
  21797.         ]
  21798.         HRESULT  Name(
  21799.             [out, retval] BSTR* prop // The name of the CommandBar object.
  21800.             );
  21801.  
  21802.         /**
  21803.          * Sets the name of the CommandBar object.
  21804.          */
  21805.         [
  21806.              propput
  21807.             ,helpcontext(0x10320008)
  21808.             ,helpstring("Sets the name of the CommandBar object.")
  21809.         ]
  21810.         HRESULT  Name(
  21811.             [in] BSTR prop // The name of the CommandBar object.
  21812.             );
  21813.  
  21814.         /**
  21815.          * Returns the parent of the specified CommandBar object.
  21816.          */
  21817.         [
  21818.              propget
  21819.             ,helpcontext(0x10320009)
  21820.             ,helpstring("Returns the parent of the specified CommandBar object.")
  21821.         ]
  21822.         HRESULT  Parent(
  21823.             [out, retval] IDispatch** prop // The parent object.
  21824.             );
  21825.  
  21826.         /**
  21827.          * Returns the position of the CommandBar object.
  21828.          */
  21829.         [
  21830.              propget
  21831.             ,helpcontext(0x1032000A)
  21832.             ,helpstring("Returns the position of the CommandBar object.")
  21833.         ]
  21834.         HRESULT  Position(
  21835.             [out, retval] ImsiBarPosition* prop // The position of the CommandBar object.
  21836.             );
  21837.  
  21838.         /**
  21839.          * Sets the position of the CommandBar object.
  21840.          */
  21841.         [
  21842.              propput
  21843.             ,helpcontext(0x1032000A)
  21844.             ,helpstring("Sets the position of the CommandBar object.")
  21845.         ]
  21846.         HRESULT  Position(
  21847.             [in] ImsiBarPosition prop // The position of the CommandBar object.
  21848.             );
  21849.  
  21850.         /**
  21851.          * Returns the CommandBar object's protection mask.
  21852.          */
  21853.         [
  21854.              propget
  21855.             ,helpcontext(0x1032000B)
  21856.             ,helpstring("Returns the CommandBar object's protection mask.")
  21857.         ]
  21858.         HRESULT  Protection(
  21859.             [out, retval] ImsiBarProtection* prop // The CommandBar object's protection mask.
  21860.             );
  21861.  
  21862.         /**
  21863.          * Sets the CommandBar object's protection mask.
  21864.          */
  21865.         [
  21866.              propput
  21867.             ,helpcontext(0x1032000B)
  21868.             ,helpstring("Sets the CommandBar object's protection mask.")
  21869.         ]
  21870.         HRESULT  Protection(
  21871.             [in] ImsiBarProtection prop // The CommandBar object's protection mask.
  21872.             );
  21873.  
  21874.         /**
  21875.          * Returns the row number of the CommandBar object's location.
  21876.          */
  21877.         [
  21878.              propget
  21879.             ,helpcontext(0x1032000C)
  21880.             ,helpstring("Returns the row number of the CommandBar object's location.")
  21881.         ]
  21882.         HRESULT  RowIndex(
  21883.             [out, retval] long* prop // The row number of the CommandBar object's location.
  21884.             );
  21885.  
  21886.         /**
  21887.          * Sets the row number of the CommandBar object's location.
  21888.          */
  21889.         [
  21890.              propput
  21891.             ,helpcontext(0x1032000C)
  21892.             ,helpstring("Sets the row number of the CommandBar object's location.")
  21893.         ]
  21894.         HRESULT  RowIndex(
  21895.             [in] long prop // The row number of the CommandBar object's location.
  21896.             );
  21897.  
  21898.         /**
  21899.          * Returns the tab number of the CommandBar object's location.
  21900.          */
  21901.         [
  21902.              propget
  21903.             ,helpcontext(0x1032000D)
  21904.             ,helpstring("Returns the tab number of the CommandBar object's location.")
  21905.         ]
  21906.         HRESULT  TabIndex(
  21907.             [out, retval] long* prop // The tab number of the CommandBar object's location.
  21908.             );
  21909.  
  21910.         /**
  21911.          * Sets the tab number of the CommandBar object's location.
  21912.          */
  21913.         [
  21914.              propput
  21915.             ,helpcontext(0x1032000D)
  21916.             ,helpstring("Sets the tab number of the CommandBar object's location.")
  21917.         ]
  21918.         HRESULT  TabIndex(
  21919.             [in] long prop // The tab number of the CommandBar object's location.
  21920.             );
  21921.  
  21922.         /**
  21923.          * Returns the CommandBars collection.
  21924.          */
  21925.         [
  21926.              propget
  21927.             ,helpcontext(0x1032000E)
  21928.             ,helpstring("Returns the CommandBars collection.")
  21929.         ]
  21930.         HRESULT  Tabs(
  21931.             [out, retval] CommandBars** prop // The CommandBars collection.
  21932.             );
  21933.  
  21934.         /**
  21935.          * True if the CommandBar object is temporary.
  21936.          */
  21937.         [
  21938.              propget
  21939.             ,helpcontext(0x1032000F)
  21940.             ,helpstring("True if the CommandBar object is temporary.")
  21941.         ]
  21942.         HRESULT  Temporary(
  21943.             [out, retval] IMSI_BOOL* prop // True if the CommandBar object is temporary.
  21944.             );
  21945.  
  21946.         /**
  21947.          * True if the CommandBar object is temporary.
  21948.          */
  21949.         [
  21950.              propput
  21951.             ,helpcontext(0x1032000F)
  21952.             ,helpstring("True if the CommandBar object is temporary.")
  21953.         ]
  21954.         HRESULT  Temporary(
  21955.             [in] IMSI_BOOL prop // True if the CommandBar object is temporary.
  21956.             );
  21957.  
  21958.         /**
  21959.          * Returns the vertical position of the CommandBar object.
  21960.          */
  21961.         [
  21962.              propget
  21963.             ,helpcontext(0x10320010)
  21964.             ,helpstring("Returns the vertical position of the CommandBar object.")
  21965.         ]
  21966.         HRESULT  Top(
  21967.             [out, retval] double* prop // The vertical position of the CommandBar object.
  21968.             );
  21969.  
  21970.         /**
  21971.          * Sets the vertical position of the CommandBar object.
  21972.          */
  21973.         [
  21974.              propput
  21975.             ,helpcontext(0x10320010)
  21976.             ,helpstring("Sets the vertical position of the CommandBar object.")
  21977.         ]
  21978.         HRESULT  Top(
  21979.             [in] double prop // The vertical position of the CommandBar object.
  21980.             );
  21981.  
  21982.         /**
  21983.          * Returns the type of the CommandBar object.
  21984.          */
  21985.         [
  21986.              propget
  21987.             ,helpcontext(0x10320011)
  21988.             ,helpstring("Returns the type of the CommandBar object.")
  21989.         ]
  21990.         HRESULT  Type(
  21991.             [out, retval] ImsiBarType* prop // The type of the CommandBar object.
  21992.             );
  21993.  
  21994.         /**
  21995.          * True if the CommandBar object is visible.
  21996.          */
  21997.         [
  21998.              propget
  21999.             ,helpcontext(0x10320012)
  22000.             ,helpstring("True if the CommandBar object is visible.")
  22001.         ]
  22002.         HRESULT  Visible(
  22003.             [out, retval] IMSI_BOOL* prop // True if the CommandBar object is visible.
  22004.             );
  22005.  
  22006.         /**
  22007.          * True if the CommandBar object is visible.
  22008.          */
  22009.         [
  22010.              propput
  22011.             ,helpcontext(0x10320012)
  22012.             ,helpstring("True if the CommandBar object is visible.")
  22013.         ]
  22014.         HRESULT  Visible(
  22015.             [in] IMSI_BOOL prop // True if the CommandBar object is visible.
  22016.             );
  22017.  
  22018.         /**
  22019.          * Returns the width of the CommandBar object.
  22020.          */
  22021.         [
  22022.              propget
  22023.             ,helpcontext(0x10320013)
  22024.             ,helpstring("Returns the width of the CommandBar object.")
  22025.         ]
  22026.         HRESULT  Width(
  22027.             [out, retval] double* prop // The width of the CommandBar object.
  22028.             );
  22029.  
  22030.         /**
  22031.          * Sets the width of the CommandBar object.
  22032.          */
  22033.         [
  22034.              propput
  22035.             ,helpcontext(0x10320013)
  22036.             ,helpstring("Sets the width of the CommandBar object.")
  22037.         ]
  22038.         HRESULT  Width(
  22039.             [in] double prop // The width of the CommandBar object.
  22040.             );
  22041.  
  22042.         /**
  22043.          * Private.  Returns information about the __CommandBar object.
  22044.          */
  22045.         [
  22046.              propget
  22047.             ,restricted
  22048.             ,helpcontext(0x10320014)
  22049.             ,helpstring("Private.  Returns information about the __CommandBar object.")
  22050.         ]
  22051.         HRESULT  _Info(
  22052.             [out, retval] long* prop // Private information.
  22053.             );
  22054.  
  22055.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22056.  
  22057.         /**
  22058.          * Deletes the object.
  22059.          */
  22060.         [
  22061.              helpcontext(0x10320015)
  22062.             ,helpstring("Deletes the object.")
  22063.         ]
  22064.         HRESULT  Delete(
  22065.             );
  22066.  
  22067.         /**
  22068.          * Finds a CommandBarControl object within the collection.
  22069.          */
  22070.         [
  22071.              helpcontext(0x10320016)
  22072.             ,helpstring("Finds a CommandBarControl object within the collection.")
  22073.         ]
  22074.         HRESULT  FindControl(
  22075.             [in] ImsiControlType Type, // The type of the CommandBarControl object.
  22076.             [in, optional] VARIANT* Id, // The ID of the CommandBarControl object.
  22077.             [in, optional] VARIANT* Tag, // The name of the CommandBarControl object.
  22078.             [in, optional] VARIANT* Visible, // True if the CommandBarControl object is visible.
  22079.             [in, optional] VARIANT* Recursive, // True to search all descendant CommandBar objects.
  22080.             [out, retval] CommandBarControl** prop // The CommandBarControl object found.
  22081.             );
  22082.  
  22083.         /**
  22084.          * Resets the CommandBar object to its initial state.
  22085.          */
  22086.         [
  22087.              helpcontext(0x10320017)
  22088.             ,helpstring("Resets the CommandBar object to its initial state.")
  22089.         ]
  22090.         HRESULT  Reset(
  22091.             );
  22092.  
  22093.     };
  22094.  
  22095.     /**
  22096.      * The collection of customizable command bars.
  22097.      */
  22098.     [
  22099.          object
  22100.         ,restricted, hidden
  22101.         ,uuid(6A48112B-E531-11CF-A115-00A024158DAF)
  22102.         ,oleautomation
  22103.         ,dual
  22104.         ,helpcontext(0x10330000)
  22105.         ,helpstring("The collection of customizable command bars.")
  22106.     ]
  22107.     interface CommandBars : IDispatch
  22108.     {
  22109.  
  22110.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22111.  
  22112.         /**
  22113.          * Returns the active menu bar.
  22114.          */
  22115.         [
  22116.              propget
  22117.             ,helpcontext(0x10330001)
  22118.             ,helpstring("Returns the active menu bar.")
  22119.         ]
  22120.         HRESULT  ActiveMenuBar(
  22121.             [out, retval] CommandBar** prop // The active menu bar.
  22122.             );
  22123.  
  22124.         /**
  22125.          * Returns an Application object that represents the owner of the specified object.
  22126.          */
  22127.         [
  22128.              propget
  22129.             ,helpcontext(0x10330002)
  22130.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  22131.         ]
  22132.         HRESULT  Application(
  22133.             [out, retval] IApplication** prop // The Application object.
  22134.             );
  22135.  
  22136.         /**
  22137.          * Returns the number of items in the collection.
  22138.          */
  22139.         [
  22140.              propget
  22141.             ,helpcontext(0x10330003)
  22142.             ,helpstring("Returns the number of items in the collection.")
  22143.         ]
  22144.         HRESULT  Count(
  22145.             [out, retval] long* prop // The number of items.
  22146.             );
  22147.  
  22148.         /**
  22149.          * Returns part of a collection.
  22150.          */
  22151.         [
  22152.              propget
  22153.             ,id(DISPID_VALUE)
  22154.             ,helpcontext(0x10330004)
  22155.             ,helpstring("Returns part of a collection.")
  22156.         ]
  22157.         HRESULT  Item(
  22158.             [in] VARIANT* Index, // Index of item to return.
  22159.             [out, retval] CommandBar** prop // The item.
  22160.             );
  22161.  
  22162.         /**
  22163.          * Returns the parent object for the specified object.
  22164.          */
  22165.         [
  22166.              propget
  22167.             ,helpcontext(0x10330005)
  22168.             ,helpstring("Returns the parent object for the specified object.")
  22169.         ]
  22170.         HRESULT  Parent(
  22171.             [out, retval] IDispatch** prop // The parent object.
  22172.             );
  22173.  
  22174.         /**
  22175.          * Creates an enumeration object.
  22176.          */
  22177.         [
  22178.              propget
  22179.             ,restricted
  22180.             ,id(DISPID_NEWENUM)
  22181.             ,helpcontext(0x10330006)
  22182.             ,helpstring("Private.  Creates an enumeration object.")
  22183.         ]
  22184.         HRESULT  _NewEnum(
  22185.             [out, retval] IUnknown** prop // The enumeration object.
  22186.             );
  22187.  
  22188.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22189.  
  22190.         /**
  22191.          * Adds a new CommandBar object to the collection.
  22192.          */
  22193.         [
  22194.              helpcontext(0x10330007)
  22195.             ,helpstring("Adds a new CommandBar object to the collection.")
  22196.         ]
  22197.         HRESULT  Add(
  22198.             [in] BSTR Name, // The name of the new CommandBar object.
  22199.             [in, optional] VARIANT* Position, // The index of the new CommandBar object.
  22200.             [in, optional] VARIANT* MenuBar, // Which bar to add the object to.
  22201.             [in, optional] VARIANT* Temporary, // True if the CommandBar object is temporary.
  22202.             [out, retval] CommandBar** prop // The new CommandBar object object.
  22203.             );
  22204.  
  22205.         /**
  22206.          * Adds an existing CommandBar object to the collection.
  22207.          */
  22208.         [
  22209.              helpcontext(0x10330008)
  22210.             ,helpstring("Adds an existing CommandBar object to the collection.")
  22211.         ]
  22212.         HRESULT  AddTabbedBar(
  22213.             [in] CommandBar* prop, // The CommandBar object object.
  22214.             [in, optional] VARIANT* Position // The index of the CommandBar object.
  22215.             );
  22216.  
  22217.         /**
  22218.          * Finds a CommandBarControl object within the collection.
  22219.          */
  22220.         [
  22221.              helpcontext(0x10330009)
  22222.             ,helpstring("Finds a CommandBarControl object within the collection.")
  22223.         ]
  22224.         HRESULT  FindControl(
  22225.             [in] ImsiControlType Type, // The type of the CommandBarControl object.
  22226.             [in, optional] VARIANT* Id, // The ID of the CommandBarControl object.
  22227.             [in, optional] VARIANT* Tag, // The user-defined tag of the CommandBarControl object.
  22228.             [in, optional] VARIANT* Visible, // True if the CommandBarControl object is visible.
  22229.             [out, retval] CommandBarControl** prop // The CommandBarControl object found.
  22230.             );
  22231.  
  22232.         /**
  22233.          * Finds the ID of a CommandBarControl object within the collection.
  22234.          */
  22235.         [
  22236.              helpcontext(0x1033000A)
  22237.             ,helpstring("Finds the ID of a CommandBarControl object within the collection.")
  22238.         ]
  22239.         HRESULT  FindControlId(
  22240.             [in] ImsiControlType Type, // The type of the CommandBarControl object.
  22241.             [in, optional] VARIANT* CommandName, // The command name of the CommandBarControl object.
  22242.             [in, optional] VARIANT* Caption, // The name of the CommandBarControl object.
  22243.             [in, optional] VARIANT* Tag, // The user-defined tag of the CommandBarControl object.
  22244.             [in, optional] VARIANT* Visible, // True if the CommandBarControl object is visible.
  22245.             [out, retval] long* prop // The ID of the CommandBarControl object.
  22246.             );
  22247.  
  22248.         /**
  22249.          * Sets the current configuration of the CommandBars collection to a file.
  22250.          */
  22251.         [
  22252.              helpcontext(0x1033000B)
  22253.             ,helpstring("Sets the current configuration of the CommandBars collection to a file.")
  22254.         ]
  22255.         HRESULT  Open(
  22256.             [in] BSTR FileName, // The name of the file.
  22257.             [in, optional] VARIANT* Sections // Which sections of the file to open.
  22258.             );
  22259.  
  22260.         /**
  22261.          * Saves the current configuration of the CommandBars collection to a file.
  22262.          */
  22263.         [
  22264.              helpcontext(0x1033000C)
  22265.             ,helpstring("Saves the current configuration of the CommandBars collection to a file.")
  22266.         ]
  22267.         HRESULT  Save(
  22268.             [in] BSTR FileName, // The name of the file.
  22269.             [in, optional] VARIANT* Sections // Which sections of the file to save.
  22270.             );
  22271.     };
  22272.  
  22273.     /**
  22274.      * A command bar control.
  22275.      */
  22276.     [
  22277.          object
  22278.         ,restricted, hidden
  22279.         ,uuid(6A48113F-E531-11CF-A115-00A024158DAF)
  22280.         ,oleautomation
  22281.         ,dual
  22282.         ,helpcontext(0x10340000)
  22283.         ,helpstring("A command bar control.")
  22284.     ]
  22285.     interface CommandBarControl : IDispatch
  22286.     {
  22287.  
  22288.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22289.  
  22290.         /**
  22291.          * Returns an Application object that represents the owner of the specified object.
  22292.          */
  22293.         [
  22294.              propget
  22295.             ,helpcontext(0x10340001)
  22296.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  22297.         ]
  22298.         HRESULT  Application(
  22299.             [out, retval] IApplication** prop // The Application object.
  22300.             );
  22301.  
  22302.         /**
  22303.          * True if the CommandBarControl object is the first in a group.
  22304.          */
  22305.         [
  22306.              propget
  22307.             ,helpcontext(0x10340002)
  22308.             ,helpstring("True if the CommandBarControl object is the first in a group.")
  22309.         ]
  22310.         HRESULT  BeginGroup(
  22311.             [out, retval] IMSI_BOOL* prop // True if the CommandBarControl object is the first in a group.
  22312.             );
  22313.  
  22314.         /**
  22315.          * True if the CommandBarControl object is the first in a group.
  22316.          */
  22317.         [
  22318.              propput
  22319.             ,helpcontext(0x10340002)
  22320.             ,helpstring("True if the CommandBarControl object is the first in a group.")
  22321.         ]
  22322.         HRESULT  BeginGroup(
  22323.             [in] IMSI_BOOL prop // True if the CommandBarControl object is the first in a group.
  22324.             );
  22325.  
  22326.         /**
  22327.          * True if the object is built-in.
  22328.          */
  22329.         [
  22330.              propget
  22331.             ,helpcontext(0x10340003)
  22332.             ,helpstring("True if the object is built-in.")
  22333.         ]
  22334.         HRESULT  Builtin(
  22335.             [out, retval] IMSI_BOOL* prop // True if the object is built-in.
  22336.             );
  22337.  
  22338.         /**
  22339.          * Returns the caption of the object, as a string.
  22340.          */
  22341.         [
  22342.              propget
  22343.             ,helpcontext(0x10340004)
  22344.             ,helpstring("Returns the caption of the object, as a string.")
  22345.         ]
  22346.         HRESULT  Caption(
  22347.             [out, retval] BSTR* prop // The caption of the object.
  22348.             );
  22349.  
  22350.         /**
  22351.          * Sets the caption of the object.
  22352.          */
  22353.         [
  22354.              propput
  22355.             ,helpcontext(0x10340004)
  22356.             ,helpstring("Sets the caption of the object.")
  22357.         ]
  22358.         HRESULT  Caption(
  22359.             [in] BSTR prop // The caption of the object.
  22360.             );
  22361.  
  22362.         /**
  22363.          * Returns the CommandBar object of a popup control.
  22364.          */
  22365.         [
  22366.              propget
  22367.             ,helpcontext(0x10340005)
  22368.             ,helpstring("Returns the CommandBar object of a popup control.")
  22369.         ]
  22370.         HRESULT  CommandBar(
  22371.             [out, retval] CommandBar** prop // The CommandBar object.
  22372.             );
  22373.  
  22374.         /**
  22375.          * Returns the CommandBarControls collection of a popup control.
  22376.          */
  22377.         [
  22378.              propget
  22379.             ,helpcontext(0x10340006)
  22380.             ,helpstring("Returns the CommandBarControls collection of a popup control.")
  22381.         ]
  22382.         HRESULT  Controls(
  22383.             [out, retval] CommandBarControls** prop // The CommandBarControls collection.
  22384.             );
  22385.  
  22386.         /**
  22387.          * Returns the description of the object, as a string.
  22388.          */
  22389.         [
  22390.              propget
  22391.             ,helpcontext(0x10340007)
  22392.             ,helpstring("Returns the description of the object, as a string.")
  22393.         ]
  22394.         HRESULT  Description(
  22395.             [out, retval] BSTR* prop // The description of the object.
  22396.             );
  22397.  
  22398.         /**
  22399.          * Sets the description of the object.
  22400.          */
  22401.         [
  22402.              propput
  22403.             ,helpcontext(0x10340007)
  22404.             ,helpstring("Sets the description of the object.")
  22405.         ]
  22406.         HRESULT  Description(
  22407.             [in] BSTR prop // The description of the object.
  22408.             );
  22409.  
  22410.         /**
  22411.          * True if the object is enabled.
  22412.          */
  22413.         [
  22414.              propget
  22415.             ,helpcontext(0x10340008)
  22416.             ,helpstring("True if the object is enabled.")
  22417.         ]
  22418.         HRESULT  Enabled(
  22419.             [out, retval] IMSI_BOOL* prop // True if the object is enabled.
  22420.             );
  22421.  
  22422.         /**
  22423.          * True if the object is enabled.
  22424.          */
  22425.         [
  22426.              propput
  22427.             ,helpcontext(0x10340008)
  22428.             ,helpstring("True if the object is enabled.")
  22429.         ]
  22430.         HRESULT  Enabled(
  22431.             [in] IMSI_BOOL prop // True if the object is enabled.
  22432.             );
  22433.  
  22434.         /**
  22435.          * Returns the height of the object.
  22436.          */
  22437.         [
  22438.              propget
  22439.             ,helpcontext(0x10340009)
  22440.             ,helpstring("Returns the height of the object.")
  22441.         ]
  22442.         HRESULT  Height(
  22443.             [out, retval] double* prop // The height of the object.
  22444.             );
  22445.  
  22446.         /**
  22447.          * Sets the height of the object.
  22448.          */
  22449.         [
  22450.              propput
  22451.             ,helpcontext(0x10340009)
  22452.             ,helpstring("Sets the height of the object.")
  22453.         ]
  22454.         HRESULT  Height(
  22455.             [in] double prop // The height of the object.
  22456.             );
  22457.  
  22458.         /**
  22459.          * Returns the ID of the CommandBarControl object.
  22460.          */
  22461.         [
  22462.              propget
  22463.             ,helpcontext(0x1034000A)
  22464.             ,helpstring("Returns the ID of the CommandBarControl object.")
  22465.         ]
  22466.         HRESULT  Id(
  22467.             [out, retval] long* prop // The ID of the CommandBarControl object.
  22468.             );
  22469.  
  22470.         /**
  22471.          * Returns the index of the item in the collection.
  22472.          */
  22473.         [
  22474.              propget
  22475.             ,helpcontext(0x1034000B)
  22476.             ,helpstring("Returns the index of the item in the collection.")
  22477.         ]
  22478.         HRESULT  Index(
  22479.             [out, retval] long* prop // The index.
  22480.             );
  22481.  
  22482.         /**
  22483.          * Returns the horizontal position of the object.
  22484.          */
  22485.         [
  22486.              propget
  22487.             ,helpcontext(0x1034000C)
  22488.             ,helpstring("Returns the horizontal position of the object.")
  22489.         ]
  22490.         HRESULT  Left(
  22491.             [out, retval] double* prop // The horizontal position of the object.
  22492.             );
  22493.  
  22494.         /**
  22495.          * Returns the menu group.
  22496.          */
  22497.         [
  22498.              propget
  22499.             ,helpcontext(0x1034000D)
  22500.             ,helpstring("Returns the menu group.")
  22501.         ]
  22502.         HRESULT  OLEMenuGroup(
  22503.             [out, retval] ImsiOleMenuGroup* prop // The menu group.
  22504.             );
  22505.  
  22506.         /**
  22507.          * Sets the menu group.
  22508.          */
  22509.         [
  22510.              propput
  22511.             ,helpcontext(0x1034000D)
  22512.             ,helpstring("Sets the menu group.")
  22513.         ]
  22514.         HRESULT  OLEMenuGroup(
  22515.             [in] ImsiOleMenuGroup prop // The menu group.
  22516.             );
  22517.  
  22518.         /**
  22519.          * Returns the object or macro performed when the CommandBarControl object is executed.
  22520.          */
  22521.         [
  22522.              propget
  22523.             ,helpcontext(0x1034000E)
  22524.             ,helpstring("Returns the object or macro performed when the CommandBarControl object is executed.")
  22525.         ]
  22526.         HRESULT  OnAction(
  22527.             [out, retval] VARIANT* prop // An object or macro name.
  22528.             );
  22529.  
  22530.         /**
  22531.          * Sets the object or macro performed when the CommandBarControl object is executed.
  22532.          */
  22533.         [
  22534.              propput
  22535.             ,helpcontext(0x1034000E)
  22536.             ,helpstring("Sets the object or macro performed when the CommandBarControl object is executed.")
  22537.         ]
  22538.         HRESULT  OnAction(
  22539.             [in] VARIANT* prop // An object or macro name.
  22540.             );
  22541.  
  22542.         /**
  22543.          * Returns the text parameter of the object, as a string.
  22544.          */
  22545.         [
  22546.              propget
  22547.             ,helpcontext(0x1034000F)
  22548.             ,helpstring("Returns the text parameter of the object, as a string.")
  22549.         ]
  22550.         HRESULT  Parameter(
  22551.             [out, retval] BSTR* prop // The text parameter of the object.
  22552.             );
  22553.  
  22554.         /**
  22555.          * Sets the text parameter of the object.
  22556.          */
  22557.         [
  22558.              propput
  22559.             ,helpcontext(0x1034000F)
  22560.             ,helpstring("Sets the text parameter of the object.")
  22561.         ]
  22562.         HRESULT  Parameter(
  22563.             [in] BSTR prop // The text parameter of the object.
  22564.             );
  22565.  
  22566.         /**
  22567.          * Returns the parent object for the specified object.
  22568.          */
  22569.         [
  22570.              propget
  22571.             ,helpcontext(0x10340010)
  22572.             ,helpstring("Returns the parent object for the specified object.")
  22573.         ]
  22574.         HRESULT  Parent(
  22575.             [out, retval] IDispatch** prop // The parent object.
  22576.             );
  22577.  
  22578.         /**
  22579.          * Returns the text tag of the object, as a string.
  22580.          */
  22581.         [
  22582.              propget
  22583.             ,helpcontext(0x10340011)
  22584.             ,helpstring("Returns the text tag of the object, as a string.")
  22585.         ]
  22586.         HRESULT  Tag(
  22587.             [out, retval] BSTR* prop // The text tag of the object.
  22588.             );
  22589.  
  22590.         /**
  22591.          * Sets the text tag of the object.
  22592.          */
  22593.         [
  22594.              propput
  22595.             ,helpcontext(0x10340011)
  22596.             ,helpstring("Sets the text tag of the object.")
  22597.         ]
  22598.         HRESULT  Tag(
  22599.             [in] BSTR prop // The text tag of the object.
  22600.             );
  22601.  
  22602.         /**
  22603.          * True if the object is temporary.
  22604.          */
  22605.         [
  22606.              propget
  22607.             ,helpcontext(0x10340012)
  22608.             ,helpstring("True if the object is temporary.")
  22609.         ]
  22610.         HRESULT  Temporary(
  22611.             [out, retval] IMSI_BOOL* prop // True if the object is temporary.
  22612.             );
  22613.  
  22614.         /**
  22615.          * True if the object is temporary.
  22616.          */
  22617.         [
  22618.              propput
  22619.             ,helpcontext(0x10340012)
  22620.             ,helpstring("True if the object is temporary.")
  22621.         ]
  22622.         HRESULT  Temporary(
  22623.             [in] IMSI_BOOL prop // True if the object is temporary.
  22624.             );
  22625.  
  22626.         /**
  22627.          * Returns the tooltip text of the object, as a string.
  22628.          */
  22629.         [
  22630.              propget
  22631.             ,restricted, hidden
  22632.             ,helpcontext(0x10340013)
  22633.             ,helpstring("Returns the tooltip text of the object, as a string.")
  22634.         ]
  22635.         HRESULT  TooltipText(
  22636. #if (_USE_LCID)
  22637.              [in, lcid]    long lcid
  22638. #else
  22639.              [in, optional]    long lcid
  22640. #endif
  22641.             ,[out, retval] BSTR* prop // The tooltip text of the object.
  22642.             );
  22643.  
  22644.         /**
  22645.          * Sets the tooltip text of the object.
  22646.          */
  22647.         [
  22648.              propput
  22649.             ,restricted, hidden
  22650.             ,helpcontext(0x10340013)
  22651.             ,helpstring("Sets the tooltip text of the object.")
  22652.         ]
  22653.         HRESULT  TooltipText(
  22654. #if (_USE_LCID)
  22655.              [in, lcid]    long lcid
  22656. #else
  22657.              [in, optional]    long lcid
  22658. #endif
  22659.             ,[in] BSTR prop // The tooltip text of the object.
  22660.             );
  22661.  
  22662.         /**
  22663.          * Returns the vertical position of the object.
  22664.          */
  22665.         [
  22666.              propget
  22667.             ,helpcontext(0x10340014)
  22668.             ,helpstring("Returns the vertical position of the object.")
  22669.         ]
  22670.         HRESULT  Top(
  22671.             [out, retval] double* prop // The vertical position of the object.
  22672.             );
  22673.  
  22674.         /**
  22675.          * Returns the type of the CommandBarControl object.
  22676.          */
  22677.         [
  22678.              propget
  22679.             ,helpcontext(0x10340015)
  22680.             ,helpstring("Returns the type of the CommandBarControl object.")
  22681.         ]
  22682.         HRESULT  Type(
  22683.             [out, retval] ImsiControlType* prop // The type of the CommandBarControl object.
  22684.             );
  22685.  
  22686.         /**
  22687.          * True if the CommandBarControl object is visible.
  22688.          */
  22689.         [
  22690.              propget
  22691.             ,helpcontext(0x10340016)
  22692.             ,helpstring("True if the CommandBarControl object is visible.")
  22693.         ]
  22694.         HRESULT  Visible(
  22695.             [out, retval] IMSI_BOOL* prop // True if the CommandBarControl object is visible.
  22696.             );
  22697.  
  22698.         /**
  22699.          * True if the CommandBarControl object is visible.
  22700.          */
  22701.         [
  22702.              propput
  22703.             ,helpcontext(0x10340016)
  22704.             ,helpstring("True if the CommandBarControl object is visible.")
  22705.         ]
  22706.         HRESULT  Visible(
  22707.             [in] IMSI_BOOL prop // True if the CommandBarControl object is visible.
  22708.             );
  22709.  
  22710.         /**
  22711.          * Returns the width of the object.
  22712.          */
  22713.         [
  22714.              propget
  22715.             ,helpcontext(0x10340017)
  22716.             ,helpstring("Returns the width of the object.")
  22717.         ]
  22718.         HRESULT  Width(
  22719.             [out, retval] double* prop // The width of the object.
  22720.             );
  22721.  
  22722.         /**
  22723.          * Sets the width of the object.
  22724.          */
  22725.         [
  22726.              propput
  22727.             ,helpcontext(0x10340017)
  22728.             ,helpstring("Sets the width of the object.")
  22729.         ]
  22730.         HRESULT  Width(
  22731.             [in] double prop // The width of the object.
  22732.             );
  22733.  
  22734.         /**
  22735.          * Private.  Returns information about the __CommandBarControl object.
  22736.          */
  22737.         [
  22738.              propget
  22739.             ,restricted
  22740.             ,helpcontext(0x10340018)
  22741.             ,helpstring("Private.  Returns information about the __CommandBarControl object.")
  22742.         ]
  22743.         HRESULT  _Info(
  22744.             [out, retval] long* prop // Private information.
  22745.             );
  22746.  
  22747.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22748.  
  22749.         /**
  22750.          * Copies the object to another location.
  22751.          */
  22752.         [
  22753.              helpcontext(0x10340019)
  22754.             ,helpstring("Copies the object to another location.")
  22755.         ]
  22756.         HRESULT  Copy(
  22757.             [in] CommandBar *Bar, // The bar to copy to.
  22758.             [in, optional] VARIANT* Before, // The location within the bar.
  22759.             [out, retval] CommandBarControl** prop // The new copy.
  22760.             );
  22761.  
  22762.         /**
  22763.          * Deletes the object.
  22764.          */
  22765.         [
  22766.              helpcontext(0x1034001A)
  22767.             ,helpstring("Deletes the object.")
  22768.         ]
  22769.         HRESULT  Delete(
  22770.             [in, optional] VARIANT* Temporary // True if the deletion is temporary.
  22771.             );
  22772.  
  22773.         /**
  22774.          * Performs the action specified by the CommandBarControl object.
  22775.          */
  22776.         [
  22777.              helpcontext(0x1034001B)
  22778.             ,helpstring("Performs the action specified by the CommandBarControl object.")
  22779.         ]
  22780.         HRESULT  Execute(
  22781.             );
  22782.  
  22783.         /**
  22784.          * Moves the object to another location.
  22785.          */
  22786.         [
  22787.              helpcontext(0x1034001C)
  22788.             ,helpstring("Moves the object to another location.")
  22789.         ]
  22790.         HRESULT  Move(
  22791.             [in] CommandBar *Bar, // The bar to copy to.
  22792.             [in, optional] VARIANT* Before, // The location within the bar.
  22793.             [out, retval] CommandBarControl** prop // The moved object.
  22794.             );
  22795.  
  22796.         /**
  22797.          * Resets the CommandBarControl object to its initial state.
  22798.          */
  22799.         [
  22800.              helpcontext(0x1034001D)
  22801.             ,helpstring("Resets the CommandBarControl object to its initial state.")
  22802.         ]
  22803.         HRESULT  Reset(
  22804.             );
  22805.  
  22806.         /**
  22807.          * Sets the input focus to this CommandBarControl object.
  22808.          */
  22809.         [
  22810.              helpcontext(0x1034001E)
  22811.             ,helpstring("Sets the input focus to this CommandBarControl object.")
  22812.         ]
  22813.         HRESULT  SetFocus(
  22814.             );
  22815.  
  22816.     };
  22817.  
  22818.     /**
  22819.      * A collection of command bar controls.
  22820.      */
  22821.     [
  22822.          object
  22823.         ,restricted, hidden
  22824.         ,uuid(6A481140-E531-11CF-A115-00A024158DAF)
  22825.         ,oleautomation
  22826.         ,dual
  22827.         ,helpcontext(0x10350000)
  22828.         ,helpstring("A collection of command bar controls.")
  22829.     ]
  22830.     interface CommandBarControls : IDispatch
  22831.     {
  22832.  
  22833.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22834.  
  22835.         /**
  22836.          * Returns an Application object that represents the owner of the specified object.
  22837.          */
  22838.         [
  22839.              propget
  22840.             ,helpcontext(0x10350001)
  22841.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  22842.         ]
  22843.         HRESULT  Application(
  22844.             [out, retval] IApplication** prop // The Application object.
  22845.             );
  22846.  
  22847.         /**
  22848.          * Returns the number of items in the collection.
  22849.          */
  22850.         [
  22851.              propget
  22852.             ,helpcontext(0x10350002)
  22853.             ,helpstring("Returns the number of items in the collection.")
  22854.         ]
  22855.         HRESULT  Count(
  22856.             [out, retval] long* prop // The number of items.
  22857.             );
  22858.  
  22859.         /**
  22860.          * Returns part of a collection.
  22861.          */
  22862.         [
  22863.              propget
  22864.             ,id(DISPID_VALUE)
  22865.             ,helpcontext(0x10350003)
  22866.             ,helpstring("Returns part of a collection.")
  22867.         ]
  22868.         HRESULT  Item(
  22869.             [in] VARIANT* Index, // Index of item to return.
  22870.             [out, retval] CommandBarControl** prop // The item.
  22871.             );
  22872.  
  22873.         /**
  22874.          * Returns the parent object for the specified object.
  22875.          */
  22876.         [
  22877.              propget
  22878.             ,helpcontext(0x10350004)
  22879.             ,helpstring("Returns the parent object for the specified object.")
  22880.         ]
  22881.         HRESULT  Parent(
  22882.             [out, retval] IDispatch** prop // The parent object.
  22883.             );
  22884.  
  22885.         /**
  22886.          * Creates an enumeration object.
  22887.          */
  22888.         [
  22889.              propget
  22890.             ,restricted
  22891.             ,id(DISPID_NEWENUM)
  22892.             ,helpcontext(0x10350005)
  22893.             ,helpstring("Private.  Creates an enumeration object.")
  22894.         ]
  22895.         HRESULT  _NewEnum(
  22896.             [out, retval] IUnknown** prop // The enumeration object.
  22897.             );
  22898.  
  22899.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22900.  
  22901.         /**
  22902.          * Adds a new CommandBarControl object to the collection.
  22903.          */
  22904.         [
  22905.              helpcontext(0x10350006)
  22906.             ,helpstring("Adds a new CommandBarControl object to the collection.")
  22907.         ]
  22908.         HRESULT  Add(
  22909.             [in] ImsiControlType Type, // The type of the new CommandBarControl object.
  22910.             [in, optional] VARIANT* Id, // The id of the new CommandBarControl object.
  22911.             [in, optional] VARIANT* Parameter, // Which bar to add the object to.
  22912.             [in, optional] VARIANT* Before, // Where to add the new CommandBarControl object.
  22913.             [in, optional] VARIANT* Temporary, // True if the CommandBarControl object is temporary.
  22914.             [out, retval] CommandBarControl** prop // The new CommandBarControl object object.
  22915.             );
  22916.     };
  22917.     /**
  22918.      * A TurboCAD's layer set object.
  22919.      */
  22920.     [
  22921.          object
  22922.         ,uuid(39710626-93A9-43D6-90C5-D37C61B831EE),
  22923.         ,oleautomation
  22924.         ,dual
  22925.         ,helpcontext(0x10540000)
  22926.         ,helpstring("A TurboCAD LayersSet object.")
  22927.     ]
  22928.     interface LayersSet : IDispatch
  22929.     {
  22930.  
  22931.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22932.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22933.  
  22934.         /**
  22935.          * Returns an Application object that represents the owner of the specified object.
  22936.          */
  22937.         [
  22938.              propget
  22939.             ,helpcontext(0x10350007)
  22940.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  22941.         ]
  22942.         HRESULT  Application(
  22943.             [out, retval] IApplication** prop // The Application object.
  22944.             );
  22945.  
  22946.         /**
  22947.          * Returns the number of items in the collection.
  22948.          */
  22949.         [
  22950.              propget
  22951.             ,helpcontext(0x10350008)
  22952.             ,helpstring("Returns the number of items in the collection.")
  22953.         ]
  22954.         HRESULT  Count(
  22955.             [out, retval] long* prop // The number of items.
  22956.             );
  22957.  
  22958.         /**
  22959.          * Returns part of a collection.
  22960.          */
  22961.         [
  22962.              propget
  22963.             ,id(DISPID_VALUE)
  22964.             ,helpcontext(0x10350009)
  22965.             ,helpstring("Returns part of a collection.")
  22966.         ]
  22967.         HRESULT  Item(
  22968.             [in] VARIANT* Index, // Index of item to return.
  22969.             [out, retval] Layer** prop // The item.
  22970.             );
  22971.  
  22972.         /**
  22973.          * Returns the parent object for the specified object.
  22974.          */
  22975.         [
  22976.              propget
  22977.             ,helpcontext(0x1035000A)
  22978.             ,helpstring("Returns the parent object for the specified object.")
  22979.         ]
  22980.         HRESULT  Parent(
  22981.             [out, retval] IDispatch** prop // The parent object.
  22982.             );
  22983.  
  22984.         /**
  22985.          * Returns the name of the LayersSet object
  22986.          */
  22987.         [
  22988.              propget
  22989.             ,helpcontext(0x1035000B)
  22990.             ,helpstring("Returns the name of the ILayerSet")
  22991.         ]
  22992.         HRESULT  Name(
  22993.         [out, retval] BSTR* prop // Returns the name of the LayersSet object
  22994.             );
  22995.  
  22996.         /**
  22997.          * True if the object is active.
  22998.          */
  22999.         [
  23000.              propget
  23001.             ,helpcontext(0x1035000C)
  23002.             ,helpstring("True if the object is active.")
  23003.         ]
  23004.         HRESULT  Active(
  23005.             [out, retval] IMSI_BOOL* prop // True if the layersset is active.
  23006.             );
  23007.  
  23008.         /**
  23009.          * ID of the LayersSet object.
  23010.          */
  23011.         [
  23012.              propget
  23013.             ,helpcontext(0x1035000D)
  23014.             ,helpstring("ID of the LayersSet object.")
  23015.         ]
  23016.         HRESULT  ID(
  23017.             [out, retval] long* prop // returns ID of the LayersSet object
  23018.             );
  23019.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23020.  
  23021.         /**
  23022.          * Activates the layersset.
  23023.          */
  23024.         [
  23025.              helpcontext(0x1035000F)
  23026.             ,helpstring("Activates the layersset.")
  23027.         ]
  23028.         HRESULT  Activate(
  23029.             [in, optional] VARIANT* View // If supplied, the View object to display layersset in.
  23030.             );
  23031.  
  23032.         /**
  23033.          * Adds a new layer to the layersset
  23034.          */
  23035.         [
  23036.              helpcontext(0x10350010)
  23037.             ,helpstring("Add a new layer to the layersset.")
  23038.         ]
  23039.         HRESULT  AddLayer(
  23040.             [in] BSTR Name
  23041.             );
  23042.  
  23043.         /**
  23044.          * Removess a layer from the layersset
  23045.          */
  23046.         [
  23047.              helpcontext(0x10350011)
  23048.             ,helpstring("Removes a layer from the layersset.")
  23049.         ]
  23050.         HRESULT  RemoveLayer(
  23051.             [in] BSTR Name
  23052.             );
  23053.  
  23054.         /**
  23055.          * Clears the contents of the collection
  23056.          */
  23057.         [
  23058.              helpcontext(0x10350012)
  23059.             ,helpstring("Clears the contents of the collection.")
  23060.         ]
  23061.         HRESULT  Clear();
  23062.  
  23063.         /**
  23064.          * Deletes the object.
  23065.          */
  23066.         [
  23067.              helpcontext(0x10350013)
  23068.             ,helpstring("Deletes the object.")
  23069.         ]
  23070.         HRESULT  Delete(
  23071.             );
  23072.  
  23073.     
  23074.     }
  23075.  
  23076.  
  23077.     /**
  23078.      * A TurboCAD's layerssets collection.
  23079.      */
  23080.     [
  23081.          object
  23082.         ,uuid(93E0830A-D3B8-450A-AD77-AD7C7DAE2254)
  23083.         ,oleautomation
  23084.         ,dual
  23085.         ,helpcontext(0x10550000)
  23086.         ,helpstring("A TurboCAD LayersSets collection.")
  23087.     ]
  23088.     interface LayersSets : IDispatch
  23089.     {
  23090.  
  23091.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23092.  
  23093.         /**
  23094.          * Returns an Application object that represents the owner of the specified object.
  23095.          */
  23096.         [
  23097.              propget
  23098.             ,helpcontext(0x10350015)
  23099.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  23100.         ]
  23101.         HRESULT  Application(
  23102.             [out, retval] IApplication** prop // The Application object.
  23103.             );
  23104.  
  23105.         /**
  23106.          * Returns the number of items in the collection.
  23107.          */
  23108.         [
  23109.              propget
  23110.             ,helpcontext(0x10350016)
  23111.             ,helpstring("Returns the number of items in the collection.")
  23112.         ]
  23113.         HRESULT  Count(
  23114.             [out, retval] long* prop // The number of items.
  23115.             );
  23116.  
  23117.         /**
  23118.          * Returns part of a collection.
  23119.          */
  23120.         [
  23121.              propget
  23122.             ,id(DISPID_VALUE)
  23123.             ,helpcontext(0x10350017)
  23124.             ,helpstring("Returns part of a collection.")
  23125.         ]
  23126.         HRESULT  Item(
  23127.             [in] VARIANT* Index, // Index of item to return.
  23128.             [out, retval] LayersSet** prop // The item.
  23129.             );
  23130.  
  23131.         /**
  23132.          * Returns the parent object for the specified object.
  23133.          */
  23134.         [
  23135.              propget
  23136.             ,helpcontext(0x10350018)
  23137.             ,helpstring("Returns the parent object for the specified object.")
  23138.         ]
  23139.         HRESULT  Parent(
  23140.             [out, retval] IDispatch** prop // The parent object.
  23141.             );
  23142.  
  23143.         /**
  23144.          * Creates an enumeration object.
  23145.          */
  23146.         [
  23147.              propget
  23148.             ,restricted
  23149.             ,id(DISPID_NEWENUM)
  23150.             ,helpcontext(0x10350019)
  23151.             ,helpstring("Private.  Creates an enumeration object.")
  23152.         ]
  23153.         HRESULT  _NewEnum(
  23154.             [out, retval] IUnknown** prop // The enumeration object.
  23155.             );
  23156.  
  23157.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23158.  
  23159.         /**
  23160.          * Adds a new LayersSet object to the collection.
  23161.          */
  23162.         [
  23163.              helpcontext(0x1035001A)
  23164.             ,helpstring("Adds a new LayersSet object to the collection.")
  23165.         ]
  23166.         HRESULT  Add(
  23167.             [in] BSTR Name,
  23168.             [out, retval] LayersSet** prop
  23169.             );
  23170.         /**
  23171.          * Clears the contents of the collection.
  23172.          */
  23173.         [
  23174.              helpcontext(0x1035001B)
  23175.             ,helpstring("Clears the contents of the collection.")
  23176.         ]
  23177.         HRESULT  Clear();
  23178.  
  23179.     }
  23180.  
  23181.  
  23182.     /**
  23183.      * A TurboCAD drawing or editing tool.
  23184.      */
  23185.     [
  23186.          object
  23187.         ,uuid(6A48112C-E531-11CF-A115-00A024158DAF)
  23188.         ,oleautomation
  23189.         ,dual
  23190.         ,helpcontext(0x10360000)
  23191.         ,helpstring("A TurboCAD drawing or editing tool.")
  23192.     ]
  23193.     interface Tool : IDispatch
  23194.     {
  23195.  
  23196.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23197.  
  23198.         /**
  23199.          * True if the object is active.
  23200.          */
  23201.         [
  23202.              propget
  23203.             ,helpcontext(0x10360001)
  23204.             ,helpstring("True if the object is active.")
  23205.         ]
  23206.         HRESULT  Active(
  23207.             [out, retval] IMSI_BOOL* prop // True if the object is active.
  23208.             );
  23209.  
  23210.         /**
  23211.          * Returns an Application object that represents the owner of the specified object.
  23212.          */
  23213.         [
  23214.              propget
  23215.             ,helpcontext(0x10360002)
  23216.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  23217.         ]
  23218.         HRESULT  Application(
  23219.             [out, retval] IApplication** prop // The Application object.
  23220.             );
  23221.  
  23222.         /**
  23223.          * True if the object is built-in.
  23224.          */
  23225.         [
  23226.              propget
  23227.             ,helpcontext(0x10360003)
  23228.             ,helpstring("True if the object is built-in.")
  23229.             ,restricted, hidden
  23230.         ]
  23231.         HRESULT  Builtin(
  23232.             [out, retval] IMSI_BOOL* prop // True if the object is built-in.
  23233.             );
  23234.  
  23235.         /**
  23236.          * Returns the name of the Tool object's category, as a string.
  23237.          */
  23238.         [
  23239.              propget
  23240.             ,helpcontext(0x10360004)
  23241.             ,helpstring("Returns the name of the Tool object's category, as a string.")
  23242.         ]
  23243.         HRESULT  Category(
  23244. #if (_USE_LCID)
  23245.              [in, lcid]    long lcid
  23246. #else
  23247.              [in, optional]    long lcid
  23248. #endif
  23249.             ,[out, retval] BSTR* prop // The name of the Tool object's category.
  23250.             );
  23251.  
  23252.         /**
  23253.          * Sets the name of the Tool object's category, as a string.
  23254.          */
  23255.         [
  23256.              propput
  23257.             ,helpcontext(0x10360004)
  23258.             ,helpstring("Sets the name of the Tool object's category, as a string.")
  23259.         ]
  23260.         HRESULT  Category(
  23261. #if (_USE_LCID)
  23262.              [in, lcid]    long lcid
  23263. #else
  23264.              [in, optional]    long lcid
  23265. #endif
  23266.             ,[in] BSTR prop // The name of the Tool object's category.
  23267.             );
  23268.  
  23269.         /**
  23270.          * Returns the name of the object, as a string.
  23271.          */
  23272.         [
  23273.              propget
  23274.             ,helpcontext(0x10360005)
  23275.             ,helpstring("Returns the name of the object, as a string.")
  23276.         ]
  23277.         HRESULT  CommandName(
  23278. #if (_USE_LCID)
  23279.              [in, lcid]    long lcid
  23280. #else
  23281.              [in, optional]    long lcid
  23282. #endif
  23283.             ,[out, retval] BSTR* prop // The name of the object.
  23284.             );
  23285.  
  23286.         /**
  23287.          * Sets the name of the object, as a string.
  23288.          */
  23289.         [
  23290.              propput
  23291.             ,helpcontext(0x10360005)
  23292.             ,helpstring("Sets the name of the object, as a string.")
  23293.         ]
  23294.         HRESULT  CommandName(
  23295. #if (_USE_LCID)
  23296.              [in, lcid]    long lcid
  23297. #else
  23298.              [in, optional]    long lcid
  23299. #endif
  23300.             ,[in] BSTR prop // The name of the object.
  23301.             );
  23302.  
  23303.         /**
  23304.          * True if the object is enabled.
  23305.          */
  23306.         [
  23307.              propget
  23308.             ,helpcontext(0x10360006)
  23309.             ,helpstring("True if the object is enabled.")
  23310.         ]
  23311.         HRESULT  Enabled(
  23312.             [out, retval] IMSI_BOOL* prop // True if the object is enabled.
  23313.             );
  23314.  
  23315.         /**
  23316.          * True if the object is enabled.
  23317.          */
  23318.         [
  23319.              propput
  23320.             ,helpcontext(0x10360006)
  23321.             ,helpstring("True if the object is enabled.")
  23322.         ]
  23323.         HRESULT  Enabled(
  23324.             [in] IMSI_BOOL prop // True if the object is enabled.
  23325.             );
  23326.  
  23327.         /**
  23328.          * Returns the command identifier.
  23329.          */
  23330.         [
  23331.              propget
  23332.             ,helpcontext(0x10360007)
  23333.             ,helpstring("Returns the command identifier.")
  23334.         ]
  23335.         HRESULT  Id(
  23336.             [out, retval] long* prop // The command identifier.
  23337.             );
  23338.  
  23339.         /**
  23340.          * Returns the index of the item in the collection.
  23341.          */
  23342.         [
  23343.              propget
  23344.             ,helpcontext(0x10360008)
  23345.             ,helpstring("Returns the index of the item in the collection.")
  23346.         ]
  23347.         HRESULT  Index(
  23348.             [out, retval] long* prop // The index.
  23349.             );
  23350.  
  23351.         /**
  23352.          * Returns the string that will appear in the menu.
  23353.          */
  23354.         [
  23355.              propget
  23356.             ,helpcontext(0x10360009)
  23357.             ,helpstring("Returns the string that will appear in the menu.")
  23358.         ]
  23359.         HRESULT  MenuText(
  23360. #if (_USE_LCID)
  23361.              [in, lcid]    long lcid
  23362. #else
  23363.              [in, optional]    long lcid
  23364. #endif
  23365.             ,[out, retval] BSTR* prop // The string that will appear in the menu.
  23366.             );
  23367.  
  23368.         /**
  23369.          * Sets the string that will appear in the menu.
  23370.          */
  23371.         [
  23372.              propput
  23373.             ,helpcontext(0x10360009)
  23374.             ,helpstring("Sets the string that will appear in the menu.")
  23375.         ]
  23376.         HRESULT  MenuText(
  23377. #if (_USE_LCID)
  23378.              [in, lcid]    long lcid
  23379. #else
  23380.              [in, optional]    long lcid
  23381. #endif
  23382.             ,[in] BSTR prop // The string that will appear in the menu.
  23383.             );
  23384.  
  23385.         /**
  23386.          * Returns the parent object for the specified object.
  23387.          */
  23388.         [
  23389.              propget
  23390.             ,helpcontext(0x1036000A)
  23391.             ,helpstring("Returns the parent object for the specified object.")
  23392.         ]
  23393.         HRESULT  Parent(
  23394.             [out, retval] IApplication** prop // The parent object.
  23395.             );
  23396.  
  23397.         /**
  23398.          * Returns the string that will appear in the status bar.
  23399.          */
  23400.         [
  23401.              propget
  23402.             ,helpcontext(0x1036000B)
  23403.             ,helpstring("Returns the string that will appear in the status bar.")
  23404.         ]
  23405.         HRESULT  Prompt(
  23406. #if (_USE_LCID)
  23407.              [in, lcid]    long lcid
  23408. #else
  23409.              [in, optional]    long lcid
  23410. #endif
  23411.             ,[out, retval] BSTR* prop // The string that will appear in the status bar.
  23412.             );
  23413.  
  23414.         /**
  23415.          * Sets the string that will appear in the status bar.
  23416.          */
  23417.         [
  23418.              propput
  23419.             ,helpcontext(0x1036000B)
  23420.             ,helpstring("Sets the string that will appear in the status bar.")
  23421.         ]
  23422.         HRESULT  Prompt(
  23423. #if (_USE_LCID)
  23424.              [in, lcid]    long lcid
  23425. #else
  23426.              [in, optional]    long lcid
  23427. #endif
  23428.             ,[in] BSTR prop // The string that will appear in the status bar.
  23429.             );
  23430.  
  23431.         /**
  23432.          * Returns the string that will appear in the menu.
  23433.          */
  23434.         [
  23435.              propget
  23436.             ,helpcontext(0x1036000C)
  23437.             ,helpstring("Returns the string that will appear in tool tips.")
  23438.         ]
  23439.         HRESULT  TooltipText(
  23440. #if (_USE_LCID)
  23441.              [in, lcid]    long lcid
  23442. #else
  23443.              [in, optional]    long lcid
  23444. #endif
  23445.             ,[out, retval] BSTR* prop // The string that will appear in tool tips.
  23446.             );
  23447.  
  23448.         /**
  23449.          * Sets the string that will appear in tool tips.
  23450.          */
  23451.         [
  23452.              propput
  23453.             ,helpcontext(0x1036000C)
  23454.             ,helpstring("Sets the string that will appear in tool tips.")
  23455.         ]
  23456.         HRESULT  TooltipText(
  23457. #if (_USE_LCID)
  23458.              [in, lcid]    long lcid
  23459. #else
  23460.              [in, optional]    long lcid
  23461. #endif
  23462.             ,[in] BSTR prop // The string that will appear in tool tips.
  23463.             );
  23464.  
  23465.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23466.  
  23467.         /**
  23468.          * Activates the object.
  23469.          */
  23470.         [
  23471.              helpcontext(0x1036000D)
  23472.             ,helpstring("Activates the object.")
  23473.         ]
  23474.         HRESULT  Activate(
  23475.             );
  23476.  
  23477.         /**
  23478.          * Deletes the object.
  23479.          */
  23480.         [
  23481.              helpcontext(0x1036000E)
  23482.             ,helpstring("Deletes the object.")
  23483.             ,restricted, hidden
  23484.         ]
  23485.         HRESULT  Delete(
  23486.             );
  23487.  
  23488.         ///////////////////////////// TC 8.1 Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23489.  
  23490.         [
  23491.              propget
  23492.             ,helpcontext(0x1036000F)
  23493.             ,helpstring("Returns the Tool object's Properties collection.")
  23494.         ]
  23495.         HRESULT  Properties(
  23496.             [out, retval] Properties** prop // The Properties collection.
  23497.             );
  23498.     
  23499.         [
  23500.              propget
  23501.             ,helpcontext(0x10360010)
  23502.             ,helpstring("Returns the Tool object's status.")
  23503.         ]
  23504.         HRESULT  Status(
  23505.             [out, retval] long* prop // The status value.
  23506.             );
  23507.     
  23508.         [
  23509.              propput
  23510.             ,helpcontext(0x10360010)
  23511.             ,helpstring("Sets the Tool object's status.")
  23512.         ]
  23513.         HRESULT  Status(
  23514.             [in]          long prop // The status value.
  23515.             );
  23516.     };
  23517.     /**
  23518.      * The collection of TurboCAD drawing or editing tool.
  23519.      */
  23520.     [
  23521.          object
  23522.         ,uuid(6A48112D-E531-11CF-A115-00A024158DAF)
  23523.         ,oleautomation
  23524.         ,dual
  23525.         ,helpcontext(0x10370000)
  23526.         ,helpstring("The collection of TurboCAD drawing or editing tool.")
  23527.     ]
  23528.     interface Tools : IDispatch
  23529.     {
  23530.  
  23531.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23532.  
  23533.         /**
  23534.          * Returns the currently active Tool object.
  23535.          */
  23536.         [
  23537.              propget
  23538.             ,helpcontext(0x10370001)
  23539.             ,helpstring("Returns the currently active Tool object.")
  23540.         ]
  23541.         HRESULT  ActiveTool(
  23542.             [out, retval] Tool** prop // The currently active Tool object.
  23543.             );
  23544.  
  23545.         /**
  23546.          * Returns an Application object that represents the owner of the specified object.
  23547.          */
  23548.         [
  23549.              propget
  23550.             ,helpcontext(0x10370002)
  23551.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  23552.         ]
  23553.         HRESULT  Application(
  23554.             [out, retval] IApplication** prop // The Application object.
  23555.             );
  23556.  
  23557.         /**
  23558.          * Returns the number of items in the collection.
  23559.          */
  23560.         [
  23561.              propget
  23562.             ,helpcontext(0x10370003)
  23563.             ,helpstring("Returns the number of items in the collection.")
  23564.         ]
  23565.         HRESULT  Count(
  23566.             [out, retval] long* prop // The number of items.
  23567.             );
  23568.  
  23569.         /**
  23570.          * Returns part of a collection.
  23571.          */
  23572.         [
  23573.              propget
  23574.             ,id(DISPID_VALUE)
  23575.             ,helpcontext(0x10370004)
  23576.             ,helpstring("Returns part of a collection.")
  23577.         ]
  23578.         HRESULT  Item(
  23579.             [in] VARIANT* Index, // Index of item to return.
  23580.             [out, retval] Tool** prop // The item.
  23581.             );
  23582.  
  23583.         /**
  23584.          * Returns the parent object for the specified object.
  23585.          */
  23586.         [
  23587.              propget
  23588.             ,helpcontext(0x10370005)
  23589.             ,helpstring("Returns the parent object for the specified object.")
  23590.         ]
  23591.         HRESULT  Parent(
  23592.             [out, retval] IApplication** prop // The parent object.
  23593.             );
  23594.  
  23595.         /**
  23596.          * Creates an enumeration object.
  23597.          */
  23598.         [
  23599.              propget
  23600.             ,restricted
  23601.             ,id(DISPID_NEWENUM)
  23602.             ,helpcontext(0x10370006)
  23603.             ,helpstring("Private.  Creates an enumeration object.")
  23604.             ,restricted, hidden
  23605.         ]
  23606.         HRESULT  _NewEnum(
  23607.             [out, retval] IUnknown** prop // The enumeration object.
  23608.             );
  23609.  
  23610.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23611.  
  23612.     };
  23613.  
  23614.     /**
  23615.      * An external procedure that can be executed from within TurboCAD.
  23616.      */
  23617.     [
  23618.          object
  23619.         ,restricted, hidden
  23620.         ,uuid(6A48112E-E531-11CF-A115-00A024158DAF)
  23621.         ,oleautomation
  23622.         ,dual
  23623.         ,helpcontext(0x10380000)
  23624.         ,helpstring("An external procedure that can be executed from within TurboCAD.")
  23625.     ]
  23626.     interface AddIn : IDispatch
  23627.     {
  23628.  
  23629.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23630.  
  23631.         /**
  23632.          * Returns an Application object that represents the owner of the specified object.
  23633.          */
  23634.         [
  23635.              propget
  23636.             ,helpcontext(0x10380001)
  23637.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  23638.         ]
  23639.         HRESULT  Application(
  23640.             [out, retval] IApplication** prop // The Application object.
  23641.             );
  23642.  
  23643.         /**
  23644.          * Returns the index of the item in the collection.
  23645.          */
  23646.         [
  23647.              propget
  23648.             ,helpcontext(0x10380002)
  23649.             ,helpstring("Returns the index of the item in the collection.")
  23650.         ]
  23651.         HRESULT  Index(
  23652.             [out, retval] long* prop // The index.
  23653.             );
  23654.  
  23655.         /**
  23656.          * Returns the name of the object, as a string.
  23657.          */
  23658.         [
  23659.              propget
  23660.             ,helpcontext(0x10380003)
  23661.             ,helpstring("Returns the name of the object, as a string.")
  23662.         ]
  23663.         HRESULT  Name(
  23664.             [out, retval] BSTR* prop // The name of the object.
  23665.             );
  23666.  
  23667.         /**
  23668.          * Returns the parent object for the specified object.
  23669.          */
  23670.         [
  23671.              propget
  23672.             ,helpcontext(0x10380004)
  23673.             ,helpstring("Returns the parent object for the specified object.")
  23674.         ]
  23675.         HRESULT  Parent(
  23676.             [out, retval] IDispatch** prop // The parent object.
  23677.             );
  23678.  
  23679.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23680.  
  23681.         /**
  23682.          * Deletes the object.
  23683.          */
  23684.         [
  23685.              helpcontext(0x10380005)
  23686.             ,helpstring("Deletes the object.")
  23687.         ]
  23688.         HRESULT  Delete(
  23689.             );
  23690.  
  23691.     };
  23692.  
  23693.     /**
  23694.      * The collection of external procedures.
  23695.      */
  23696.     [
  23697.          object
  23698.         ,restricted, hidden
  23699.         ,uuid(6A48112F-E531-11CF-A115-00A024158DAF)
  23700.         ,oleautomation
  23701.         ,dual
  23702.         ,helpcontext(0x10390000)
  23703.         ,helpstring("The collection of external procedures.")
  23704.     ]
  23705.     interface AddIns : IDispatch
  23706.     {
  23707.  
  23708.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23709.  
  23710.         /**
  23711.          * Returns an Application object that represents the owner of the specified object.
  23712.          */
  23713.         [
  23714.              propget
  23715.             ,helpcontext(0x10390001)
  23716.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  23717.         ]
  23718.         HRESULT  Application(
  23719.             [out, retval] IApplication** prop // The Application object.
  23720.             );
  23721.  
  23722.         /**
  23723.          * Returns the number of items in the collection.
  23724.          */
  23725.         [
  23726.              propget
  23727.             ,helpcontext(0x10390002)
  23728.             ,helpstring("Returns the number of items in the collection.")
  23729.         ]
  23730.         HRESULT  Count(
  23731.             [out, retval] long* prop // The number of items.
  23732.             );
  23733.  
  23734.         /**
  23735.          * Returns part of a collection.
  23736.          */
  23737.         [
  23738.              propget
  23739.             ,id(DISPID_VALUE)
  23740.             ,helpcontext(0x10390003)
  23741.             ,helpstring("Returns part of a collection.")
  23742.         ]
  23743.         HRESULT  Item(
  23744.             [in] VARIANT* Index, // Index of item to return.
  23745.             [out, retval] AddIn** prop // The item.
  23746.             );
  23747.  
  23748.         /**
  23749.          * Returns the parent object for the specified object.
  23750.          */
  23751.         [
  23752.              propget
  23753.             ,helpcontext(0x10390004)
  23754.             ,helpstring("Returns the parent object for the specified object.")
  23755.         ]
  23756.         HRESULT  Parent(
  23757.             [out, retval] IDispatch** prop // The parent object.
  23758.             );
  23759.  
  23760.         /**
  23761.          * Creates an enumeration object.
  23762.          */
  23763.         [
  23764.              propget
  23765.             ,restricted
  23766.             ,id(DISPID_NEWENUM)
  23767.             ,helpcontext(0x10390005)
  23768.             ,helpstring("Private.  Creates an enumeration object.")
  23769.         ]
  23770.         HRESULT  _NewEnum(
  23771.             [out, retval] IUnknown** prop // The enumeration object.
  23772.             );
  23773.  
  23774.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23775.  
  23776.     };
  23777.  
  23778.     /**
  23779.      * Options that change session (Application object) behavior.
  23780.      */
  23781.     [
  23782.          object
  23783.         ,restricted, hidden
  23784.         ,uuid(6A481102-E531-11CF-A115-00A024158DAF)
  23785.         ,oleautomation
  23786.         ,dual
  23787.         ,helpcontext(0x103A0000)
  23788.         ,helpstring("Options that change session (Application object) behavior.")
  23789.     ]
  23790.     interface ApplicationOptions : IDispatch
  23791.     {
  23792.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23793.  
  23794.         /**
  23795.          * True if toolbars are displayed using colored faces.
  23796.          */
  23797.         [
  23798.              propget
  23799.             ,helpcontext(0x103A0001)
  23800.             ,helpstring("True if toolbars are displayed using colored faces.")
  23801.         ]
  23802.         HRESULT  ColorButtons(
  23803.             [out, retval] IMSI_BOOL* colorButtons // True if toolbars are displayed using colored faces.
  23804.             );
  23805.  
  23806.         /**
  23807.          * True if toolbars are displayed using colored faces.
  23808.          */
  23809.         [
  23810.              propput
  23811.             ,helpcontext(0x103A0001)
  23812.             ,helpstring("True if toolbars are displayed using colored faces.")
  23813.         ]
  23814.         HRESULT  ColorButtons(
  23815.             [in] IMSI_BOOL colorButtons // True if toolbars are displayed using colored faces.
  23816.             );
  23817.  
  23818.         /**
  23819.          * Returns how TurboCAD displays coordinates in the status bar.
  23820.          */
  23821.         [
  23822.              propget
  23823.             ,helpcontext(0x103A0002)
  23824.             ,helpstring("Returns how TurboCAD displays coordinates in the status bar.")
  23825.         ]
  23826.         HRESULT  CoordinateStyle(
  23827.             [out, retval] ImsiCoordinateStyle* prop // Enumerated value.
  23828.             );
  23829.  
  23830.         /**
  23831.          * Sets how TurboCAD displays coordinates in the status bar.
  23832.          */
  23833.         [
  23834.              propput
  23835.             ,helpcontext(0x103A0002)
  23836.             ,helpstring("Sets how TurboCAD displays coordinates in the status bar.")
  23837.         ]
  23838.         HRESULT  CoordinateStyle(
  23839.             [in] ImsiCoordinateStyle prop // Enumerated value.
  23840.             );
  23841.  
  23842.         /**
  23843.          * True if backup files will be created.
  23844.          */
  23845.         [
  23846.              propget
  23847.             ,helpcontext(0x103A0003)
  23848.             ,helpstring("True if backup files will be created.")
  23849.         ]
  23850.         HRESULT  CreateBackup(
  23851.             [out, retval] IMSI_BOOL* prop // True if backup files will be created.
  23852.             );
  23853.  
  23854.         /**
  23855.          * True if backup files will be created.
  23856.          */
  23857.         [
  23858.              propput
  23859.             ,helpcontext(0x103A0003)
  23860.             ,helpstring("True if backup files will be created.")
  23861.         ]
  23862.     HRESULT  CreateBackup(
  23863.             [in] IMSI_BOOL prop // True if backup files will be created.
  23864.             );
  23865.  
  23866.         /**
  23867.          * Returns the default path TurboCAD uses when it opens files.
  23868.          */
  23869.         [
  23870.              propget
  23871.             ,helpcontext(0x103A0004)
  23872.             ,helpstring("Returns the default path TurboCAD uses when it opens files.")
  23873.         ]
  23874.         HRESULT  DefaultFilePath(
  23875.             [out, retval] BSTR* prop // The path, as a string.
  23876.             );
  23877.  
  23878.         /**
  23879.          * Sets the default path TurboCAD uses when it opens files.
  23880.          */
  23881.         [
  23882.              propput
  23883.             ,helpcontext(0x103A0004)
  23884.             ,helpstring("Sets the default path TurboCAD uses when it opens files.")
  23885.         ]
  23886.         HRESULT  DefaultFilePath(
  23887.             [in] BSTR prop // The path, as a string.
  23888.             );
  23889.  
  23890.         /**
  23891.          * True if TurboCAD displays certain alerts and messages while a macro is running.
  23892.          */
  23893.         [
  23894.              propget
  23895.             ,helpcontext(0x103A0005)
  23896.             ,helpstring("True if TurboCAD displays certain alerts and messages while a macro is running.")
  23897.         ]
  23898.         HRESULT  DisplayAlerts(
  23899.             [out, retval] IMSI_BOOL* prop // True if TurboCAD displays certain alerts and messages while a macro is running.
  23900.             );
  23901.  
  23902.         /**
  23903.          * True if TurboCAD displays certain alerts and messages while a macro is running.
  23904.          */
  23905.         [
  23906.              propput
  23907.             ,helpcontext(0x103A0005)
  23908.             ,helpstring("True if TurboCAD displays certain alerts and messages while a macro is running.")
  23909.         ]
  23910.         HRESULT  DisplayAlerts(
  23911.             [in] IMSI_BOOL prop // True if TurboCAD displays certain alerts and messages while a macro is running.
  23912.             );
  23913.  
  23914.         /**
  23915.          * True if TurboCAD is using large toolbar buttons.
  23916.          */
  23917.         [
  23918.              propget
  23919.             ,helpcontext(0x103A0006)
  23920.             ,helpstring("True if TurboCAD is using large toolbar buttons.")
  23921.         ]
  23922.         HRESULT  LargeButtons(
  23923.             [out, retval] IMSI_BOOL* prop // True if TurboCAD is using large toolbar buttions.
  23924.             );
  23925.  
  23926.         /**
  23927.          * True if TurboCAD is using large toolbar buttons.
  23928.          */
  23929.         [
  23930.              propput
  23931.             ,helpcontext(0x103A0006)
  23932.             ,helpstring("True if TurboCAD is using large toolbar buttons.")
  23933.         ]
  23934.         HRESULT  LargeButtons(
  23935.             [in] IMSI_BOOL prop // True if TurboCAD is using large toolbar buttons.
  23936.             );
  23937.  
  23938.         /**
  23939.          * True if a prompt will appear when Drawing objects are saved.
  23940.          */
  23941.         [
  23942.              propget
  23943.             ,helpcontext(0x103A0007)
  23944.             ,helpstring("True if a prompt will appear when Drawing objects are saved.")
  23945.         ]
  23946.         HRESULT  PromptForSummaryInfo(
  23947.             [out, retval] IMSI_BOOL* prop
  23948.             );
  23949.  
  23950.         /**
  23951.          * True if a prompt will appear when Drawing objects are saved.
  23952.          */
  23953.         [
  23954.              propput
  23955.             ,helpcontext(0x103A0007)
  23956.             ,helpstring("True if a prompt will appear when Drawing objects are saved.")
  23957.         ]
  23958.         HRESULT  PromptForSummaryInfo(
  23959.             [in] IMSI_BOOL prop
  23960.             );
  23961.  
  23962.         /**
  23963.          * True if selection methods will replace, rather than add to, the Selection object.
  23964.          */
  23965.         [
  23966.              propget
  23967.             ,helpcontext(0x103A0008)
  23968.             ,helpstring("True if selection methods will replace, rather than add to, the Selection object.")
  23969.         ]
  23970.         HRESULT  ReplaceSelection(
  23971.             [out, retval] IMSI_BOOL* prop
  23972.             );
  23973.  
  23974.         /**
  23975.          * True if selection methods will replace, rather than add to, the Selection object.
  23976.          */
  23977.         [
  23978.              propput
  23979.             ,helpcontext(0x103A0008)
  23980.             ,helpstring("True if selection methods will replace, rather than add to, the Selection object.")
  23981.         ]
  23982.         HRESULT  ReplaceSelection(
  23983.             [in] IMSI_BOOL prop
  23984.             );
  23985.  
  23986.         /**
  23987.          * True if all links in a Drawing object will be updated at Open time.
  23988.          */
  23989.         [
  23990.              propget
  23991.             ,helpcontext(0x103A0009)
  23992.             ,helpstring("True if all links in a Drawing object will be updated at Open time.")
  23993.         ]
  23994.         HRESULT  UpdateLinksAtOpen(
  23995.             [out, retval] IMSI_BOOL* prop
  23996.             );
  23997.  
  23998.         /**
  23999.          * True if all links in a Drawing object will be updated at Open time.
  24000.          */
  24001.         [
  24002.              propput
  24003.             ,helpcontext(0x103A0009)
  24004.             ,helpstring("True if all links in a Drawing object will be updated at Open time.")
  24005.         ]
  24006.         HRESULT  UpdateLinksAtOpen(
  24007.             [in] IMSI_BOOL prop
  24008.             );
  24009.  
  24010.         /**
  24011.          * True if all links in a Drawing object will be updated at Print time.
  24012.          */
  24013.         [
  24014.              propget
  24015.             ,helpcontext(0x103A000A)
  24016.             ,helpstring("True if all links in a Drawing object will be updated at Print time.")
  24017.         ]
  24018.         HRESULT  UpdateLinksAtPrint(
  24019.             [out, retval] IMSI_BOOL* prop
  24020.             );
  24021.  
  24022.         /**
  24023.          * True if all links in a Drawing object will be updated at Print time.
  24024.          */
  24025.         [
  24026.              propput
  24027.             ,helpcontext(0x103A000A)
  24028.             ,helpstring("True if all links in a Drawing object will be updated at Print time.")
  24029.         ]
  24030.         HRESULT  UpdateLinksAtPrint(
  24031.             [in] IMSI_BOOL prop
  24032.             );
  24033.  
  24034.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24035.  
  24036.     };
  24037.  
  24038.     /**
  24039.      * Options that affect Drawing object behavior.
  24040.      */
  24041.     [
  24042.          object
  24043.         ,restricted, hidden
  24044.         ,uuid(6A481106-E531-11CF-A115-00A024158DAF)
  24045.         ,oleautomation
  24046.         ,dual
  24047.         ,helpcontext(0x103B0000)
  24048.         ,helpstring("Options that affect Drawing object behavior.")
  24049.     ]
  24050.     interface DrawingOptions : IDispatch
  24051.     {
  24052.     };
  24053.  
  24054.     /**
  24055.      * Procedures triggered by Application object actions.
  24056.      */
  24057.     [
  24058.          object
  24059.         ,restricted, hidden
  24060.         ,uuid(6A481104-E531-11CF-A115-00A024158DAF)
  24061.         ,oleautomation
  24062.         ,dual
  24063.         ,helpcontext(0x103C0000)
  24064.         ,helpstring("Procedures triggered by Application object actions.")
  24065.     ]
  24066.     interface ApplicationCallbacks : IDispatch
  24067.     {
  24068.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24069.  
  24070.         /**
  24071.          * OnData.
  24072.          */
  24073.         [
  24074.              propget
  24075.             ,helpcontext(0x103C0001)
  24076.             ,helpstring("OnData.")
  24077.         ]
  24078.         HRESULT  OnData(
  24079.             [out, retval] BSTR* prop
  24080.             );
  24081.  
  24082.         /**
  24083.          * OnData.
  24084.          */
  24085.         [
  24086.              propput
  24087.             ,helpcontext(0x103C0001)
  24088.             ,helpstring("OnData.")
  24089.         ]
  24090.         HRESULT  OnData(
  24091.             [in] BSTR prop
  24092.             );
  24093.  
  24094.         /**
  24095.          * Returns the name of the macro that runs whenever you double-click anywhere on a drawing.
  24096.          */
  24097.         [
  24098.              propget
  24099.             ,helpcontext(0x103C0002)
  24100.             ,helpstring("Returns the name of the macro that runs whenever you double-click anywhere on a drawing.")
  24101.         ]
  24102.         HRESULT  OnDoubleClick(
  24103.             [out, retval] BSTR* prop
  24104.             );
  24105.  
  24106.         /**
  24107.          * Sets the name of the macro that runs whenever you double-click anywhere on a drawing.
  24108.          */
  24109.         [
  24110.              propput
  24111.             ,helpcontext(0x103C0002)
  24112.             ,helpstring("Sets the name of the macro that runs whenever you double-click anywhere on a drawing.")
  24113.         ]
  24114.         HRESULT  OnDoubleClick(
  24115.             [in] BSTR prop
  24116.             );
  24117.  
  24118.         /**
  24119.          * Returns the name of the macro that runs when the user activates any drawing.
  24120.          */
  24121.         [
  24122.              propget
  24123.             ,helpcontext(0x103C0003)
  24124.             ,helpstring("Returns the name of the macro that runs when the user activates any drawing.")
  24125.         ]
  24126.         HRESULT  OnDrawingActivate(
  24127.             [out, retval] BSTR* prop
  24128.             );
  24129.  
  24130.         /**
  24131.          * Sets the name of the macro that runs when the user activates any drawing.
  24132.          */
  24133.         [
  24134.              propput
  24135.             ,helpcontext(0x103C0003)
  24136.             ,helpstring("Sets the name of the macro that runs when the user activates any drawing.")
  24137.         ]
  24138.         HRESULT  OnDrawingActivate(
  24139.             [in] BSTR prop
  24140.             );
  24141.  
  24142.         /**
  24143.          * Returns the name of the macro that runs when the user deactivates any drawing.
  24144.          */
  24145.         [
  24146.              propget
  24147.             ,helpcontext(0x103C0004)
  24148.             ,helpstring("Returns the name of the macro that runs when the user deactivates any drawing.")
  24149.         ]
  24150.         HRESULT  OnDrawingDeactivate(
  24151.             [out, retval] BSTR* prop
  24152.             );
  24153.  
  24154.         /**
  24155.          * Sets the name of the macro that runs when the user deactivates any drawing.
  24156.          */
  24157.         [
  24158.              propput
  24159.             ,helpcontext(0x103C0004)
  24160.             ,helpstring("Sets the name of the macro that runs when the user deactivates any drawing.")
  24161.         ]
  24162.         HRESULT  OnDrawingDeactivate(
  24163.             [in] BSTR prop
  24164.             );
  24165.  
  24166.         /**
  24167.          * OnEntry.
  24168.          */
  24169.         [
  24170.              propget
  24171.             ,helpcontext(0x103C0005)
  24172.             ,helpstring("OnEntry.")
  24173.         ]
  24174.         HRESULT  OnEntry(
  24175.             [out, retval] BSTR* prop
  24176.             );
  24177.  
  24178.         /**
  24179.          * OnEntry.
  24180.          */
  24181.         [
  24182.              propput
  24183.             ,helpcontext(0x103C0005)
  24184.             ,helpstring("OnEntry.")
  24185.         ]
  24186.         HRESULT  OnEntry(
  24187.             [in] BSTR prop
  24188.             );
  24189.  
  24190.         /**
  24191.          * Runs a specified procedure when a particular key or key combination is pressed.
  24192.          */
  24193.         [
  24194.              helpcontext(0x103C0006)
  24195.             ,helpstring("Runs a specified procedure when a particular key or key combination is pressed.")
  24196.         ]
  24197.         HRESULT  OnKey(
  24198.             [in] BSTR Key,
  24199.             [in, optional] VARIANT* Procedure
  24200.             );
  24201.  
  24202.         /**
  24203.          * Sets the Repeat menu item and the name of the procedure that will run if you choose Repeat from the Edit menu after running the procedure that sets this property.
  24204.          */
  24205.         [
  24206.              helpcontext(0x103C0007)
  24207.             ,helpstring("Sets the Repeat menu item and the name of the procedure that will run if you choose Repeat from the Edit menu after running the procedure that sets this property.")
  24208.         ]
  24209.         HRESULT  OnRepeat(
  24210.             [in] BSTR Text,
  24211.             [in] BSTR Procedure
  24212.             );
  24213.  
  24214.         /**
  24215.          * Schedules a procedure to run at a specified time in the future (either at a specific time of day or after a specific period has passed).
  24216.          */
  24217.         [
  24218.              helpcontext(0x103C0008)
  24219.             ,helpstring("Schedules a procedure to run at a specified time in the future (either at a specific time of day or after a specific period has passed).")
  24220.         ]
  24221.         HRESULT  OnTime(
  24222.             [in] VARIANT* EarliestTime,
  24223.             [in] BSTR Procedure,
  24224.             [in, optional] VARIANT* LatestTime,
  24225.             [in, optional] VARIANT* Schedule
  24226.             );
  24227.  
  24228.         /**
  24229.          * Sets the Undo menu item and the name of the procedure that will run if you choose Undo from the Edit menu after running the procedure that sets this property.
  24230.          */
  24231.         [
  24232.              helpcontext(0x103C0009)
  24233.             ,helpstring("Sets the Undo menu item and the name of the procedure that will run if you choose Undo from the Edit menu after running the procedure that sets this property.")
  24234.         ]
  24235.         HRESULT  OnUndo(
  24236.             [in] BSTR Text,
  24237.             [in] BSTR Procedure
  24238.             );
  24239.  
  24240.         /**
  24241.          * Returns the name of the procedure that runs whenever you switch to a window.
  24242.          */
  24243.         [
  24244.              propget
  24245.             ,helpcontext(0x103C000A)
  24246.             ,helpstring("Returns the name of the procedure that runs whenever you switch to a window.")
  24247.         ]
  24248.         HRESULT  OnWindow(
  24249.             [out, retval] BSTR* prop
  24250.             );
  24251.  
  24252.         /**
  24253.          * Sets the name of the procedure that runs whenever you switch to a window.
  24254.          */
  24255.         [
  24256.              propput
  24257.             ,helpcontext(0x103C000A)
  24258.             ,helpstring("Sets the name of the procedure that runs whenever you switch to a window.")
  24259.         ]
  24260.         HRESULT  OnWindow(
  24261.             [in] BSTR prop
  24262.             );
  24263.  
  24264.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24265.  
  24266.     };
  24267.  
  24268.     /**
  24269.      * Procedures triggered by Drawing object actions.
  24270.      */
  24271.     [
  24272.          object
  24273.         ,restricted, hidden
  24274.         ,uuid(6A481105-E531-11CF-A115-00A024158DAF)
  24275.         ,oleautomation
  24276.         ,dual
  24277.         ,helpcontext(0x103D0000)
  24278.         ,helpstring("Procedures triggered by Drawing object actions.")
  24279.     ]
  24280.     interface DrawingCallbacks : IDispatch
  24281.     {
  24282.  
  24283.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24284.  
  24285.         /**
  24286.          * OnData.
  24287.          * Unimplemented.
  24288.          * <p>
  24289.          */
  24290.         [
  24291.              propget
  24292.             ,helpcontext(0x103D0001)
  24293.             ,helpstring("Unimplemented.  OnData.")
  24294.         ]
  24295.         HRESULT  OnData(
  24296.             [out, retval] BSTR* retval
  24297.             );
  24298.  
  24299.         /**
  24300.          * OnData.
  24301.          * Unimplemented.
  24302.          * <p>
  24303.          */
  24304.         [
  24305.              propput
  24306.             ,helpcontext(0x103D0001)
  24307.             ,helpstring("Unimplemented.  OnData.")
  24308.         ]
  24309.         HRESULT  OnData(
  24310.             [in] BSTR prop
  24311.             );
  24312.  
  24313.         /**
  24314.          * OnDoubleClick.
  24315.          * Unimplemented.
  24316.          * <p>
  24317.          */
  24318.         [
  24319.              propget
  24320.             ,helpcontext(0x103D0002)
  24321.             ,helpstring("Unimplemented.  OnDoubleClick.")
  24322.         ]
  24323.         HRESULT  OnDoubleClick(
  24324.             [out, retval] BSTR* retval
  24325.             );
  24326.  
  24327.         /**
  24328.          * OnDoubleClick.
  24329.          * Unimplemented.
  24330.          * <p>
  24331.          */
  24332.         [
  24333.              propput
  24334.             ,helpcontext(0x103D0002)
  24335.             ,helpstring("Unimplemented.  OnDoubleClick.")
  24336.         ]
  24337.         HRESULT  OnDoubleClick(
  24338.             [in] BSTR prop
  24339.             );
  24340.  
  24341.         /**
  24342.          * OnEntry.
  24343.          * Unimplemented.
  24344.          * <p>
  24345.          */
  24346.         [
  24347.              propget
  24348.             ,helpcontext(0x103D0003)
  24349.             ,helpstring("Unimplemented.  OnEntry.")
  24350.         ]
  24351.         HRESULT  OnEntry(
  24352.             [out, retval] BSTR* retval
  24353.             );
  24354.  
  24355.         /**
  24356.          * OnEntry.
  24357.          * Unimplemented.
  24358.          * <p>
  24359.          */
  24360.         [
  24361.              propput
  24362.             ,helpcontext(0x103D0003)
  24363.             ,helpstring("Unimplemented.  OnEntry.")
  24364.         ]
  24365.         HRESULT  OnEntry(
  24366.             [in] BSTR prop
  24367.             );
  24368.  
  24369.         /**
  24370.          * OnSave.
  24371.          * Unimplemented.
  24372.          * <p>
  24373.          */
  24374.         [
  24375.              propget
  24376.             ,helpcontext(0x103D0004)
  24377.             ,helpstring("Unimplemented.  OnSave.")
  24378.         ]
  24379.         HRESULT  OnSave(
  24380.             [out, retval] VARIANT* retval
  24381.             );
  24382.  
  24383.         /**
  24384.          * OnSave.
  24385.          * Unimplemented.
  24386.          * <p>
  24387.          */
  24388.         [
  24389.              propput
  24390.             ,helpcontext(0x103D0004)
  24391.             ,helpstring("Unimplemented.  OnSave.")
  24392.         ]
  24393.         HRESULT  OnSave(
  24394.             [in] VARIANT* prop
  24395.             );
  24396.  
  24397.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24398.  
  24399.     };
  24400.  
  24401.     /**
  24402.      * Procedures triggered by Graphic object actions.
  24403.      */
  24404.     [
  24405.          object
  24406.         ,restricted, hidden
  24407.         ,uuid(6A48113E-E531-11CF-A115-00A024158DAF)
  24408.         ,oleautomation
  24409.         ,dual
  24410.         ,helpcontext(0x103E0000)
  24411.         ,helpstring("Procedures triggered by Graphic object actions.")
  24412.     ]
  24413.     interface GraphicCallbacks : IDispatch
  24414.     {
  24415.  
  24416.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24417.  
  24418.         /**
  24419.          * OnAction.
  24420.          * Unimplemented.
  24421.          */
  24422.         [
  24423.              propget
  24424.             ,helpcontext(0x103E0001)
  24425.             ,helpstring("Unimplemented.  OnAction.")
  24426.         ]
  24427.         HRESULT  OnAction(
  24428.             [out, retval] VARIANT* retval
  24429.             );
  24430.  
  24431.         /**
  24432.          * OnAction.
  24433.          * Unimplemented.
  24434.          */
  24435.         [
  24436.              propput
  24437.             ,helpcontext(0x103E0001)
  24438.             ,helpstring("Unimplemented.  OnAction.")
  24439.         ]
  24440.         HRESULT  OnAction(
  24441.             [in] VARIANT* prop
  24442.             );
  24443.  
  24444.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24445.  
  24446.     };
  24447.  
  24448.     /**
  24449.      * Events sent by Application object.
  24450.      * Implement these events in your controlling application (as an IDispatch object).
  24451.      * Then, pass a pointer to the object to TurboCAD using the IApplication::ConnectEvents
  24452.      * method.  Set the mask parameter of IApplication::ConnectEvents to only receive
  24453.      * a subset of the full event set.
  24454.      *
  24455.      * @see IApplication::ConnectEvents
  24456.      * @see IApplication::DisconnectEvents
  24457.      */
  24458.     [
  24459.          object
  24460.         ,uuid(6A481301-E531-11CF-A115-00A024158DAF)
  24461.         ,oleautomation
  24462.         ,dual
  24463.         ,helpcontext(0x103F0000)
  24464.         ,helpstring("TurboCAD Events.")
  24465.     ]
  24466.     interface IAppEvents : IDispatch
  24467.     {
  24468.  
  24469.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24470.  
  24471.         /**
  24472.          * Event fired by TurboCAD before the Application object quits.")]
  24473.          */
  24474.         [
  24475.              id(1)
  24476.             ,helpcontext(0x103F0001)
  24477.             ,helpstring("Event fired by TurboCAD before the Application object quits.")
  24478.         ]
  24479.          HRESULT  BeforeExit(
  24480.             [in] IApplication* TheApp, // The Application object.
  24481.             [in, out] IMSI_BOOL* Cancel // Set to True to cancel the quit operation.
  24482.             );
  24483.  
  24484.         /**
  24485.          * Event fired by TurboCAD after a new Drawing object is created.")]
  24486.          */
  24487.         [    
  24488.              id(2)
  24489.             ,helpcontext(0x103F0002)
  24490.             ,helpstring("Event fired by TurboCAD after a new Drawing object is created.")
  24491.         ]
  24492.         HRESULT  DrawingNew(
  24493.             [in] IDrawing* WhichDrawing // The Drawing object that was created.
  24494.             );
  24495.  
  24496.         /**
  24497.          * Event fired by TurboCAD after an existing Drawing object was opened.")]
  24498.          */
  24499.         [
  24500.              id(3)
  24501.             ,helpcontext(0x103F0003)
  24502.             ,helpstring("Event fired by TurboCAD after an existing Drawing object was opened.")
  24503.         ]
  24504.         HRESULT  DrawingOpen(
  24505.             [in] IDrawing* WhichDrawing // The Drawing object that was created.
  24506.             );
  24507.  
  24508.         /**
  24509.          * Event fired by TurboCAD after a Drawing object was activated.")]
  24510.          */
  24511.         [    
  24512.              id(4)
  24513.             ,helpcontext(0x103F0004)
  24514.             ,helpstring("Event fired by TurboCAD after a Drawing object was activated.")
  24515.         ]
  24516.         HRESULT  DrawingActivate(
  24517.             [in] IDrawing* WhichDrawing  // The Drawing object that was activated.
  24518.             );
  24519.  
  24520.         /**
  24521.          * Event fired by TurboCAD when a Drawing object will be deactivated.")]
  24522.          */
  24523.         [
  24524.              id(5)
  24525.             ,helpcontext(0x103F0005)
  24526.             ,helpstring("Event fired by TurboCAD when a Drawing object will be deactivated.")
  24527.         ]
  24528.         HRESULT  DrawingDeactivate(
  24529.             [in] IDrawing* WhichDrawing // The Drawing object that will be dactivated.
  24530.             );
  24531.  
  24532.         /**
  24533.          * Event fired by TurboCAD before a Drawing object is closed.")]
  24534.          */
  24535.         [
  24536.              id(6)
  24537.             ,helpcontext(0x103F0006)
  24538.             ,helpstring("Event fired by TurboCAD before a Drawing object is closed.")
  24539.         ]
  24540.         HRESULT  DrawingBeforeClose(
  24541.             [in] IDrawing* WhichDrawing, // The Drawing object that will be closed.
  24542.             [in, out] IMSI_BOOL* Cancel // Set to True to cancel the close operation.
  24543.             );
  24544.  
  24545.         /**
  24546.          * Event fired by TurboCAD before a Drawing object is saved.")]
  24547.          */
  24548.         [
  24549.              id(7)
  24550.             ,helpcontext(0x103F0007)
  24551.             ,helpstring("Event fired by TurboCAD before a Drawing object is saved.")
  24552.         ]
  24553.         HRESULT  DrawingBeforeSave(
  24554.             [in] IDrawing* WhichDrawing, // The Drawing object that will be saved.
  24555.             [in, out] IMSI_BOOL* SaveAs, // Set to True to save the Drawing object under a different name.
  24556.             [in, out] IMSI_BOOL* Cancel // Set to True to cancel the save operation.
  24557.             );
  24558.  
  24559.         /**
  24560.          * Event fired by TurboCAD when a Window object was resized.")]
  24561.          */
  24562.         [
  24563.              id(8)
  24564.             ,helpcontext(0x103F0008)
  24565.             ,helpstring("Event fired by TurboCAD when a Window object was resized.")
  24566.         ]
  24567.         HRESULT  WindowResize(
  24568.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24569.             [in] View* WhichView, // The View object in which the action occurred.
  24570.             [in] Window* WhichWindow // The Window object that was resized.
  24571.             );
  24572.  
  24573.         /**
  24574.          * Event fired by TurboCAD when a Window object was activated.
  24575.          */
  24576.         [
  24577.              id(0x9)
  24578.             ,helpcontext(0x103F0009)
  24579.             ,helpstring("Event fired by TurboCAD when a Window object was activated.")
  24580.         ]
  24581.         HRESULT  WindowActivate(
  24582.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24583.             [in] View* WhichView, // The View object in which the action occurred.
  24584.             [in] Window* WhichWindow // The Window object that was activated.
  24585.             );
  24586.  
  24587.         /**
  24588.          * Event fired by TurboCAD before a Window object is deactivated.
  24589.          */
  24590.         [
  24591.              id(0xa)
  24592.             ,helpcontext(0x103F000A)
  24593.             ,helpstring("Event fired by TurboCAD before a Window object is deactivated.")
  24594.         ]
  24595.         HRESULT  WindowDeactivate(
  24596.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24597.             [in] View* WhichView, // The View object in which the action occurred.
  24598.             [in] Window* WhichWindow // The Window object that will be deactivated.
  24599.             );
  24600.  
  24601.         /**
  24602.          * Event fired by TurboCAD when a mouse button was pressed.
  24603.          */
  24604.         [
  24605.              id(0xb)
  24606.             ,helpcontext(0x103F000B)
  24607.             ,helpstring("Event fired by TurboCAD when a mouse button was pressed.")
  24608.         ]
  24609.     HRESULT  MouseDown(
  24610.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24611.             [in] View* WhichView, // The View object in which the action occurred.
  24612.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  24613.       [in] ImsiMouseButton Button, // Which button was pressed.
  24614.       [in] long Shift, // Which modifier keys were down when the action occurred.
  24615.       [in] long X, // The x window coordinate where the action occurred.
  24616.       [in] long Y, // The y window coordinate where the action occurred.
  24617.       [in, out] IMSI_BOOL* Cancel // True to cancel the mouse down operation.
  24618.             );
  24619.  
  24620.         /**
  24621.          * Event fired by TurboCAD when a mouse button was released.
  24622.          */
  24623.         [
  24624.              id(0xc)
  24625.             ,helpcontext(0x103F000C)
  24626.             ,helpstring("Event fired by TurboCAD when a mouse button was released.")
  24627.         ]
  24628.     HRESULT  MouseUp(
  24629.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24630.             [in] View* WhichView, // The View object in which the action occurred.
  24631.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  24632.       [in] ImsiMouseButton Button, // Which button was released.
  24633.       [in] long Shift, // Which modifier keys were down when the action occurred.
  24634.       [in] long X, // The x window coordinate where the action occurred.
  24635.       [in] long Y, // The y window coordinate where the action occurred.
  24636.       [in, out] IMSI_BOOL* Cancel // True to cancel the mouse up operation.
  24637.             );
  24638.  
  24639.         /**
  24640.          * Event fired by TurboCAD when the mouse was moved.
  24641.          */
  24642.         [
  24643.              id(0xd)
  24644.             ,helpcontext(0x103F000D)
  24645.             ,helpstring("Event fired by TurboCAD when the mouse was moved.")
  24646.         ]
  24647.     HRESULT  MouseMove(
  24648.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24649.             [in] View* WhichView, // The View object in which the action occurred.
  24650.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  24651.       [in] long Shift, // Which modifier keys were down when the action occurred.
  24652.       [in] long X, // The x window coordinate where the action occurred.
  24653.       [in] long Y, // The y window coordinate where the action occurred.
  24654.       [in, out] IMSI_BOOL* Cancel // True to cancel the move operation.
  24655.             );
  24656.  
  24657.         /**
  24658.          * Event fired by TurboCAD before a double click action is taken.
  24659.          */
  24660.         [
  24661.              id(0xe)
  24662.             ,helpcontext(0x103F000E)
  24663.             ,helpstring("Event fired by TurboCAD before a double click action is taken.")
  24664.         ]
  24665.         HRESULT  BeforeDoubleClick(
  24666.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24667.             [in] View* WhichView, // The View object in which the action occurred.
  24668.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  24669.             [in] Selection* Sel, // The active Selection object.
  24670.             [in, out] IMSI_BOOL* Cancel // True to cancel the double click operation.
  24671.             );
  24672.  
  24673.         /**
  24674.          * Event fired by TurboCAD before a right click action is taken.
  24675.          */
  24676.         [
  24677.              id(0xf)
  24678.             ,helpcontext(0x103F000F)
  24679.             ,helpstring("Event fired by TurboCAD before a right click action is taken.")
  24680.         ]
  24681.         HRESULT  BeforeRightClick(
  24682.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24683.             [in] View* WhichView, // The View object in which the action occurred.
  24684.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  24685.             [in] Selection* Sel, // The active Selection object.
  24686.             [in, out] IMSI_BOOL* Cancel // True to cancel the right click operation.
  24687.             );
  24688.  
  24689.         /**
  24690.          * Event fired by TurboCAD after the Selection object has changed.
  24691.          */
  24692.         [
  24693.              id(0x10)
  24694.             ,helpcontext(0x103F0010)
  24695.             ,helpstring("Event fired by TurboCAD after the Selection object has changed.")
  24696.         ]
  24697.          HRESULT  SelectionChange(
  24698.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24699.             [in] View* WhichView, // The View object in which the action occurred.
  24700.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  24701.             [in] Selection* Sel // The new active Selection object.
  24702.             );
  24703.  
  24704.         /**
  24705.          * Event fired by TurboCAD when a CommandBarControl object was hit.
  24706.          */
  24707.         [
  24708.              id(0x11)
  24709.             ,helpcontext(0x103F0011)
  24710.             ,helpstring("Event fired by TurboCAD when a CommandBarControl object was hit.")
  24711.         ]
  24712.          HRESULT  CommandBarControlHit(
  24713.             [in] CommandBarControl* WhichControl, // The CommandBarControl object.
  24714.             [in, out] IMSI_BOOL* Cancel // True to cancel the operation.
  24715.             );
  24716.  
  24717.         /**
  24718.          * Event fired by TurboCAD to inquire on the status of a CommandBarControl object.
  24719.          */
  24720.         [
  24721.              id(0x12)
  24722.             ,helpcontext(0x103F0012)
  24723.             ,helpstring("Event fired by TurboCAD to inquire on the status of a CommandBarControl object.")
  24724.         ]
  24725.          HRESULT  CommandBarControlStatus(
  24726.             [in] CommandBarControl* WhichControl // The CommandBarControl object.
  24727.             );
  24728.  
  24729.         /**
  24730.          * Event fired by TurboCAD when a Tool object is activated.
  24731.          */
  24732.         [
  24733.              id(0x13)
  24734.             ,helpcontext(0x103F0013)
  24735.             ,helpstring("Event fired by TurboCAD when a Tool object is activated.")
  24736.         ]
  24737.          HRESULT  RunTool(
  24738.             [in] Tool* WhichTool // The Tool object that was activated.
  24739.             );
  24740.  
  24741.         /**
  24742.          * Event fired by TurboCAD when a point was picked in a View object.
  24743.          */
  24744.         [
  24745.              id(0x14)
  24746.             ,helpcontext(0x103F0014)
  24747.             ,helpstring("Event fired by TurboCAD when a point was picked in a View object.")
  24748.         ]
  24749.         HRESULT  PointSnapped(
  24750.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24751.             [in] View* WhichView, // The View object in which the action occurred.
  24752.       [in] long X, // The x window coordinate where the action occurred.
  24753.       [in] long Y, // The y window coordinate where the action occurred.
  24754.             [in] IVertex* PointRaw, // A Vertex object that gives the location of the pick action.
  24755.             [in] IVertex* PointSnapped // A Vertex object that gives the snapped location.
  24756.             );
  24757.  
  24758.         /**
  24759.          * Event fired by TurboCAD when a point pick operation was completed or canceled.
  24760.          */
  24761.         [
  24762.              id(0x15)
  24763.             ,helpcontext(0x103F0015)
  24764.             ,helpstring("Event fired by TurboCAD when a point pick operation was completed or canceled.")
  24765.         ]
  24766.          HRESULT  PointPick(
  24767.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24768.             [in] View* WhichView, // The View object in which the action occurred.
  24769.             [in] PickResult* Result, // The PickResult object describing what was picked.
  24770.             [in] IMSI_BOOL PickWasCanceled // True if the pick operation was canceled by the user.
  24771.             );
  24772.  
  24773.         /**
  24774.          * Event fired by TurboCAD when a rectangle pick operation was completed or canceled.
  24775.          */
  24776.         [
  24777.              id(0x16)
  24778.             ,helpcontext(0x103F0016)
  24779.             ,helpstring("Event fired by TurboCAD when a rectangle pick operation was completed or canceled.")
  24780.         ]
  24781.          HRESULT  RectanglePick(
  24782.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24783.             [in] View* WhichView, // The View object in which the action occurred.
  24784.             [in] PickResult* Result, // The PickResult object describing what was picked.
  24785.             [in] IMSI_BOOL PickWasCanceled // True if the pick operation was canceled by the user.
  24786.             );
  24787.  
  24788.         /**
  24789.          * Event fired by TurboCAD when a polygon pick operation was completed or canceled.
  24790.          */
  24791.         [
  24792.              id(0x17)
  24793.             ,helpcontext(0x103F0017)
  24794.             ,helpstring("Event fired by TurboCAD when a polygon pick operation was completed or canceled.")
  24795.         ]
  24796.          HRESULT  PolygonPick(
  24797.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24798.             [in] View* WhichView, // The View object in which the action occurred.
  24799.             [in] PickResult* Result, // The PickResult object describing what was picked.
  24800.             [in] IMSI_BOOL PickWasCanceled // True if the pick operation was canceled by the user.
  24801.             );
  24802.  
  24803.         /**
  24804.          * Event fired by TurboCAD before a View object is redrawn.
  24805.          */
  24806.         [
  24807.              id(0x18)
  24808.             ,helpcontext(0x103F0018)
  24809.             ,helpstring("Event fired by TurboCAD before a View object is redrawn.")
  24810.         ]
  24811.          HRESULT  ViewBeforeRedraw(
  24812.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24813.             [in] View* WhichView // The View object in which the action occurred.
  24814.             );
  24815.  
  24816.         /**
  24817.          * Event fired by TurboCAD after a View object was redrawn.
  24818.          */
  24819.         [
  24820.              id(0x19)
  24821.             ,helpcontext(0x103F0019)
  24822.             ,helpstring("Event fired by TurboCAD after a View object was redrawn.")
  24823.         ]
  24824.          HRESULT  ViewAfterRedraw(
  24825.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24826.             [in] View* WhichView // The View object in which the action occurred.
  24827.             );
  24828.  
  24829.         /**
  24830.          * Event fired by TurboCAD when a virtual intersection pick operation was completed or canceled.
  24831.          */
  24832.         [
  24833.              id(0x1a)
  24834.             ,helpcontext(0x103F001A)
  24835.             ,helpstring("Event fired by TurboCAD when a virtual intersection pick operation was completed or canceled.")
  24836.         ]
  24837.          HRESULT  VirtualIntersectionPick(
  24838.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24839.             [in] View* WhichView, // The View object in which the action occurred.
  24840.             [in] PickResult* Result, // The PickResult object describing what was picked.
  24841.             [in] IMSI_BOOL PickWasCanceled // True if the pick operation was canceled by the user.
  24842.             );
  24843.  
  24844.         /**
  24845.          * Event fired by TurboCAD after the command has finished.
  24846.          */
  24847.         [
  24848.              id(0x1b)
  24849.             ,helpcontext(0x103F001B)
  24850.             ,helpstring("Event fired by TurboCAD after the command has finished.")
  24851.         ]
  24852.          HRESULT  CommandBarControlDone(
  24853.             [in] CommandBarControl* WhichControl // The CommandBarControl object.
  24854.             );
  24855.  
  24856.         /**
  24857.          * Event fired by TurboCAD after something was dropped into a drawing.
  24858.          */
  24859.         [
  24860.              id(0x1c)
  24861.             ,helpcontext(0x103F001C)
  24862.             ,helpstring("Event fired by TurboCAD after something was dropped into a drawing.")
  24863.         ]
  24864.         HRESULT  Drop(
  24865.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24866.             [in] View* WhichView, // The View object in which the action occurred.
  24867.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  24868.             [in] Selection* Sel // The active Selection object.
  24869.             );
  24870.  
  24871.         /**
  24872.          * Event fired by TurboCAD after a Drawing object is saved.")]
  24873.          */
  24874.         [
  24875.              id(0x1d)
  24876.             ,helpcontext(0x103F001D)
  24877.             ,helpstring("Event fired by TurboCAD after a Drawing object is saved.")
  24878.         ]
  24879.         HRESULT  DrawingAfterSave(
  24880.             [in] IDrawing* WhichDrawing // The Drawing object that will be saved.
  24881.             );
  24882.  
  24883.     
  24884.         /**
  24885.          * Event fired by TurboCAD before the Application object quits.")]
  24886.          */
  24887. //        [
  24888. //             id(0x1e)
  24889. //            ,helpcontext(0x103F0001)
  24890. //            ,helpstring("Event fired by TurboCAD before the Application object quits.")
  24891. //        ]
  24892.  //        HRESULT  Exit(
  24893. //            [in] IApplication* TheApp, // The Application object.
  24894. //            );
  24895.  
  24896.         /**
  24897.          * Event fired by TurboCAD before a Drawing object is closed.")]
  24898.          */
  24899. //        [
  24900. //             id(0x1f)
  24901. //            ,helpcontext(0x103F001D)
  24902. //            ,helpstring("Event fired by TurboCAD before a Drawing object is closed.")
  24903. //        ]
  24904. //        HRESULT  DrawingClose(
  24905. //            [in] IDrawing* WhichDrawing // The Drawing object that will be saved.
  24906. //            );
  24907. //        
  24908.     };
  24909.  
  24910.     /**
  24911.      * A TurboCAD macros.
  24912.      */
  24913.     [
  24914.          object, uuid(D04FB7F0-8D02-11d2-8DAF-000021452DB6)
  24915.         ,oleautomation
  24916.         ,dual
  24917.         ,helpcontext(0x10400000)
  24918.         ,helpstring("A TurboCAD Macro project.")
  24919.     ]
  24920.     interface Macro : IDispatch
  24921.     {
  24922.  
  24923.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24924.  
  24925.         /**
  24926.          * Returns an Application object that represents the owner of the specified object.
  24927.          */
  24928.         [
  24929.              propget
  24930.             ,helpcontext(0x10400001)
  24931.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  24932.         ]
  24933.         HRESULT  Application(
  24934.             [out, retval] IApplication** prop // The Application object.
  24935.             );
  24936.  
  24937.         /**
  24938.          * Returns the index of the item in the collection.
  24939.          */
  24940.         [
  24941.              propget
  24942.             ,helpcontext(0x10400002)
  24943.             ,helpstring("Returns the index of the item in the collection.")
  24944.         ]
  24945.         HRESULT  Index(
  24946.             [out, retval] long* prop // The index.
  24947.             );
  24948.  
  24949.         /**
  24950.          * Returns the name of the object, as a string.
  24951.          */
  24952.         [
  24953.              propget
  24954.             ,helpcontext(0x10400003)
  24955.             ,helpstring("Returns the name of the object, as a string.")
  24956.         ]
  24957.         HRESULT  Name(
  24958.             [out, retval] BSTR* prop // The name of the object.
  24959.             );
  24960.  
  24961.         /**
  24962.          * Sets the name of the object, as a string.
  24963.          */
  24964.         [
  24965.              propput
  24966.             ,helpcontext(0x10400003)
  24967.             ,helpstring("Sets the name of the object, as a string.")
  24968.         ]
  24969.         HRESULT  Name(
  24970.             [in] BSTR prop // The name of the object.
  24971.             );
  24972.  
  24973.         /**
  24974.          * Returns the parent object for the specified object.
  24975.          */
  24976.         [
  24977.              propget
  24978.             ,helpcontext(0x10400004)
  24979.             ,helpstring("Returns the parent object for the specified object.")
  24980.         ]
  24981.         HRESULT  Parent(
  24982.             [out, retval] IDispatch** prop // The parent object.
  24983.             );
  24984.  
  24985.         /**
  24986.          * Returns the internal table entry ID.
  24987.          * Private.
  24988.          */
  24989.         [
  24990.              propget
  24991.             ,restricted
  24992.             ,helpcontext(0x10400005)
  24993.             ,helpstring("Private.  Returns the internal table entry ID.")
  24994.         ]
  24995.         HRESULT  _TableEntryID(
  24996.             [out, retval] long* prop // The table entry ID.
  24997.             );
  24998.  
  24999.  
  25000.         /**
  25001.          * Returns the Drawing object that owns the object.
  25002.          */
  25003.         [
  25004.              propget
  25005.             ,helpcontext(0x10400006)
  25006.             ,helpstring("Returns the Drawing object that owns the object.")
  25007.         ]
  25008.         HRESULT  Drawing(
  25009.             [out, retval] IDrawing** prop // The Drawing object.
  25010.             );
  25011.  
  25012.         /**
  25013.          * Returns the Macro's project object's path.
  25014.          */
  25015.         [
  25016.              propget
  25017.             ,helpcontext(0x10400007)
  25018.             ,helpstring("Returns the Macro's project object's path.")
  25019.         ]
  25020.         HRESULT  Path(
  25021.             [out, retval] BSTR* prop // path.
  25022.             );
  25023.  
  25024.         /**
  25025.          * Sets the Macro's project object's path.
  25026.          */
  25027.         [
  25028.              propput
  25029.             ,helpcontext(0x10400007)
  25030.             ,helpstring("Sets the Macro's project object's path.")
  25031.         ]
  25032.          
  25033.         HRESULT  Path(
  25034.             [in] BSTR prop // path.
  25035.             );
  25036.  
  25037.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  25038.  
  25039.         /**
  25040.          * Deletes the object.
  25041.          */
  25042.         [
  25043.              helpcontext(0x10400008)
  25044.             ,helpstring("Deletes the object.")
  25045.         ]
  25046.         HRESULT  Delete(
  25047.             );
  25048.     };
  25049.  
  25050.     /**
  25051.      * A collection of Macro objects.
  25052.      */
  25053.     [
  25054.          object
  25055.         ,uuid(D04FB7F1-8D02-11d2-8DAF-000021452DB6)
  25056.         ,oleautomation
  25057.         ,dual
  25058.         ,helpcontext(0x10410000)
  25059.         ,helpstring("A collection of Macro projects objects.")
  25060.     ]
  25061.     interface Macros : IDispatch
  25062.     {
  25063.  
  25064.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  25065.  
  25066.         /**
  25067.          * Returns an Application object that represents the owner of the specified object.
  25068.          */
  25069.         [
  25070.              propget
  25071.             ,helpcontext(0x10410001)
  25072.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  25073.         ]
  25074.         HRESULT  Application(
  25075.             [out, retval] IApplication** prop // The Application object.
  25076.             );
  25077.  
  25078.         /**
  25079.          * Returns the number of items in the collection.
  25080.          */
  25081.         [
  25082.              propget
  25083.             ,helpcontext(0x10410002)
  25084.             ,helpstring("Returns the number of items in the collection.")
  25085.         ]
  25086.         HRESULT  Count(
  25087.             [out, retval] long* prop // The number of items.
  25088.             );
  25089.  
  25090.         /**
  25091.          * Returns part of a collection.
  25092.          */
  25093.         [
  25094.              propget
  25095.             ,id(DISPID_VALUE)
  25096.             ,helpcontext(0x10410003)
  25097.             ,helpstring("Returns part of a collection.")
  25098.         ]
  25099.         HRESULT  Item(
  25100.             [in] VARIANT* Index, // Index of item to return.
  25101.             [out, retval] Macro** prop // The item.
  25102.             );
  25103.  
  25104.         /**
  25105.          * Returns the parent object for the specified object.
  25106.          */
  25107.         [
  25108.              propget
  25109.             ,helpcontext(0x10410004)
  25110.             ,helpstring("Returns the parent object for the specified object.")
  25111.         ]
  25112.         HRESULT  Parent(
  25113.             [out, retval] IDispatch** prop // The parent object.
  25114.             );
  25115.  
  25116.         /**
  25117.          * Creates an enumeration object.
  25118.          */
  25119.         [
  25120.              propget
  25121.             ,restricted
  25122.             ,id(DISPID_NEWENUM)
  25123.             ,helpcontext(0x10410005)
  25124.             ,helpstring("Private.  Creates an enumeration object.")
  25125.         ]
  25126.         HRESULT  _NewEnum(
  25127.             [out, retval] IUnknown** prop // The enumeration object.
  25128.             );
  25129.  
  25130.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  25131.  
  25132.         /**
  25133.          * Adds a new Macro object to the collection.
  25134.          */
  25135.         [
  25136.              helpcontext(0x10410006)
  25137.             ,helpstring("Adds a new Macro object to the collection.")
  25138.         ]
  25139.         HRESULT  Add(
  25140.             [in] BSTR Name, // The name of the new Macro object.
  25141.             [in] BSTR Path,
  25142.             [out, retval] Macro** prop // The newly created NamedView object.
  25143.             );
  25144.  
  25145.         /**
  25146.          * Returns the index within the table collection of the specified table entry.
  25147.          * Private.
  25148.          */
  25149.         [
  25150.              restricted
  25151.             ,helpcontext(0x10410007)
  25152.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  25153.         ]
  25154.         HRESULT  _FindIndex(
  25155.             [in] long TableEntryID, // The internal table ID.
  25156.             [out, retval] long* prop // The zero based index.
  25157.             );
  25158.  
  25159.         /**
  25160.          * Returns an object from the table collection for the specified table entry.
  25161.          * Private.
  25162.          */
  25163.         [
  25164.              restricted
  25165.             ,helpcontext(0x10410008)
  25166.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  25167.         ]
  25168.         HRESULT  _ObjectFromID(
  25169.             [in] long TableEntryID, // The internal table ID.
  25170.             [out, retval] Macro** prop // The object.
  25171.             );
  25172.     };
  25173.  
  25174. ////////////////////////////////////////////////////////////////////////////
  25175. // TypeLibrary
  25176.  
  25177. [
  25178.      uuid(6A481400-E531-11CF-A115-00A024158DAF)
  25179.     ,version(4.0)
  25180.     ,helpfile("tcsdk.chm")
  25181.     ,helpcontext(0x12345678)
  25182.     ,helpstring("TurboCAD v4.1 Programmable Objects.")
  25183. ]
  25184. library IMSIGX
  25185. {
  25186.     importlib("stdole32.tlb");
  25187.  
  25188.     /**
  25189.      * Enumerated values for event mask.
  25190.      */
  25191.     [
  25192.          helpcontext(0x12345678)
  25193.         ,helpstring("Enumerated values for event mask.")
  25194.     ]
  25195.     typedef enum ImsiEventMask {
  25196.         imsiEventBeforeExit = 1L << 0,
  25197.         imsiEventDrawingNew = 1L << 1,
  25198.         imsiEventDrawingOpen = 1L << 2,
  25199.         imsiEventDrawingActivate = 1L << 3,
  25200.         imsiEventDrawingDeactivate = 1L << 4,
  25201.         imsiEventDrawingBeforeClose = 1L << 5,
  25202.         imsiEventDrawingBeforeSave = 1L << 6,
  25203.         imsiEventWindowResize = 1L << 7,
  25204.         imsiEventWindowActivate = 1L << 8,
  25205.         imsiEventWindowDeactivate = 1L << 9,
  25206.         imsiEventMouseDown = 1L << 10,
  25207.         imsiEventMouseUp = 1L << 11,
  25208.         imsiEventMouseMove = 1L << 12,
  25209.         imsiEventBeforeDoubleClick = 1L << 13,
  25210.         imsiEventBeforeRightClick = 1L << 14,
  25211.         imsiEventSelectionChange = 1L << 15,
  25212.         imsiEventCommandBarControlHit = 1L << 16,
  25213.         imsiEventCommandBarControlStatus = 1L << 17,
  25214.         imsiEventRunTool = 1L << 18,
  25215.         imsiEventPointSnapped = 1L << 19,
  25216.         imsiEventPointPick = 1L << 20,
  25217.         imsiEventRectanglePick = 1L << 21,
  25218.         imsiEventPolygonPick = 1L << 22,
  25219.         imsiEventViewBeforeRedraw = 1L << 23,
  25220.         imsiEventViewAfterRedraw = 1L << 24,
  25221.         imsiEventVirtualIntersectionPick = 1L << 25,
  25222.         imsiEventCommandBarControlDone = 1L << 26,
  25223.         imsiEventDrop = 1L << 27,
  25224.         imsiEventCancel = 1L << 28,
  25225.         imsiEventUpdateUndo = 1L << 29,
  25226.         imsiEventDrawingAfterSave = 1L << 30
  25227.     } ImsiEventMask;
  25228.  
  25229. ///////////////////////////////////////////////////////////////////////////
  25230. // TurboCAD coclasses (EXE server)
  25231.     [
  25232.          uuid(6A481000-E531-11CF-A115-00A024158DAF)
  25233.     // NSAM & LVR 012899 
  25234.     //appobject,
  25235.      /*predeclid,*/
  25236.         ,hidden
  25237.         ,version(4.0)
  25238.         ,helpcontext(0x10420000)
  25239.         ,helpstring("The TurboCAD application.")
  25240.     ]
  25241.     coclass Global {
  25242.         [default] interface IGlobal;
  25243.     }
  25244.     [
  25245.          uuid(6A481001-E531-11CF-A115-00A024158DAF)
  25246.     // NSAM & LVR 012899 
  25247.     //appobject,
  25248.         ,version(4.0)
  25249.         ,helpcontext(0x10430000)
  25250.         ,helpstring("The TurboCAD application.")
  25251.     ]
  25252.     coclass Application
  25253.     {
  25254.         [default] interface IApplication;
  25255.         [default, source] dispinterface IAppEvents;
  25256.     }
  25257.     // Note: this is the same magic CLSID used by TurboCAD 3.0!
  25258.     [
  25259.          uuid(6A481002-E531-11CF-A115-00A024158DAF)
  25260.         ,version(4.0)
  25261.         ,helpcontext(0x10440000)
  25262.         ,helpstring("A TurboCAD drawing.")
  25263.     ]
  25264.     coclass Drawing
  25265.     {
  25266.         [default] interface IDrawing;
  25267.         [default, source] dispinterface IAppEvents;
  25268.     }
  25269.     [
  25270.          uuid(6A481003-E531-11CF-A115-00A024158DAF)
  25271.         ,version(4.0)
  25272.         ,helpcontext(0x10450000)
  25273.         ,helpstring("A TurboCAD graphic.")
  25274.     ]
  25275.     coclass Graphic
  25276.     {
  25277.         [default] interface IGraphic;
  25278.     }
  25279.     [
  25280.          uuid(6A481004-E531-11CF-A115-00A024158DAF)
  25281.         ,version(4.0)
  25282.         ,helpcontext(0x10460000)
  25283.         ,helpstring("A TurboCAD vertex.")
  25284.     ]
  25285.     coclass Vertex
  25286.     {
  25287.         [default] interface IVertex;
  25288.     }
  25289.     
  25290.     [
  25291.          uuid(6A481005-E531-11CF-A115-00A024158DAF)
  25292.         ,version(4.0)
  25293.         ,helpcontext(0x10470000)
  25294.         ,helpstring("A transformation matrix.")
  25295.     ]
  25296.     coclass Matrix
  25297.     {
  25298.         [default] interface IMatrix;
  25299.     }
  25300.     [
  25301.          uuid(6A481006-E531-11CF-A115-00A024158DAF)
  25302.         ,version(4.0)
  25303.         ,helpcontext(0x10480000)
  25304.         ,helpstring("A TurboCAD camera.")
  25305.     ]
  25306.     coclass Camera
  25307.     {
  25308.         [default] interface ICamera;
  25309.     }
  25310.     
  25311.     [
  25312.          uuid(6A481007-E531-11CF-A115-00A024158DAF)
  25313.         ,restricted, hidden
  25314.         ,version(4.0)
  25315.         ,helpcontext(0x10490000)
  25316.         ,helpstring("A TurboCAD grid.")
  25317.     ]
  25318.     coclass Grid
  25319.     {
  25320.         [default] interface IGrid;
  25321.     }
  25322.     [
  25323.          uuid(6A481009-E531-11CF-A115-00A024158DAF)
  25324.         ,version(4.0)
  25325.         ,restricted, hidden
  25326.         ,helpcontext(0x104A0000)
  25327.         ,helpstring("A brush pattern.")
  25328.     ]
  25329.     coclass BrushPattern
  25330.     {
  25331.         [default] interface IBrushPattern;
  25332.     }
  25333.  
  25334.         ///////////////////////////////////////////////////////////////////////////
  25335.         // IMSIGX coclasses (DLL server)
  25336.     [
  25337.          uuid(6A481800-E531-11CF-A115-00A024158DAF)
  25338.         ,appobject
  25339.         /*predeclid,*/
  25340.         ,hidden
  25341.         ,version(4.0)
  25342.         ,helpcontext(0x104B0000)
  25343.         ,helpstring("The TurboCAD application.")
  25344.     ]
  25345.     coclass XGlobal {
  25346.         [default] interface IGlobal;
  25347.     }
  25348.  
  25349.  
  25350.     [
  25351.          uuid(6A481801-E531-11CF-A115-00A024158DAF)
  25352.         //appobject,
  25353.         ,version(4.0)
  25354.         ,helpcontext(0x104C0000)
  25355.         ,helpstring("The TurboCAD application.")
  25356.     ]
  25357.     coclass XApplication
  25358.     {
  25359.         [default] interface IApplication;
  25360.         interface IGlobal;
  25361.     }
  25362.     [
  25363.          uuid(6A481802-E531-11CF-A115-00A024158DAF)
  25364.         ,version(4.0)
  25365.         ,helpcontext(0x104D0000)
  25366.         ,helpstring("A TurboCAD drawing.")
  25367.     ]
  25368.     coclass XDrawing
  25369.     {
  25370.         [default] interface IDrawing;
  25371.     }
  25372.     [
  25373.          uuid(6A481803-E531-11CF-A115-00A024158DAF)
  25374.         ,version(4.0)
  25375.         ,helpcontext(0x104E0000)
  25376.         ,helpstring("A TurboCAD graphic.")
  25377.     ]
  25378.     coclass XGraphic
  25379.     {
  25380.         [default] interface IGraphic;
  25381.     }
  25382.  
  25383.     [
  25384.          uuid(6A481804-E531-11CF-A115-00A024158DAF)
  25385.         ,version(4.0)
  25386.         ,helpcontext(0x104F0000)
  25387.         ,helpstring("A TurboCAD vertex.")
  25388.     ]
  25389.     coclass XVertex
  25390.     {
  25391.         [default] interface IVertex;
  25392.     }
  25393.     [
  25394.          uuid(6A481805-E531-11CF-A115-00A024158DAF)
  25395.         ,version(4.0)
  25396.         ,helpcontext(0x10500000)
  25397.         ,helpstring("A transformation matrix.")
  25398.     ]
  25399.     coclass XMatrix
  25400.     {
  25401.         [default] interface IMatrix;
  25402.     }
  25403.     [
  25404.          uuid(6A481806-E531-11CF-A115-00A024158DAF)
  25405.         ,version(4.0)
  25406.         ,helpcontext(0x10510000)
  25407.         ,helpstring("A TurboCAD camera.")
  25408.     ]
  25409.     coclass XCamera
  25410.     {
  25411.         [default] interface ICamera;
  25412.     }
  25413.  
  25414.     [
  25415.          uuid(6A481807-E531-11CF-A115-00A024158DAF)
  25416.         ,restricted, hidden
  25417.         ,version(4.0)
  25418.         ,helpcontext(0x10520000)
  25419.         ,helpstring("A TurboCAD grid.")
  25420.     ]
  25421.     coclass XGrid
  25422.     {
  25423.         [default] interface IGrid;
  25424.     }
  25425.     
  25426.     [
  25427.          uuid(6A481809-E531-11CF-A115-00A024158DAF)
  25428.         ,version(4.0)
  25429.         ,restricted, hidden
  25430.         ,helpcontext(0x10530000)
  25431.         ,helpstring("A brush pattern.")
  25432.     ]
  25433.     coclass XBrushPattern
  25434.     {
  25435.         [default] interface IBrushPattern;
  25436.     }
  25437.  
  25438.     [
  25439.          uuid(6A481817-E531-11CF-A115-00A024158DAF)
  25440.         ,version(12.0)
  25441.         ,restricted, hidden
  25442.         ,helpcontext(0x10540000)
  25443.         ,helpstring("Unfo NotifySink.")
  25444.     ]
  25445.     coclass XUndoNotifySink
  25446.     {
  25447.         [default] interface IUndoNotifySink;
  25448.     }
  25449. }
  25450.  
  25451.